The main difference between the two pages is the method of sending messages. Recieving messages is the same in both.
Send messages to iframe using iframeEl.contentWindow.postMessage
Recieve messages using window.addEventListener('message')
[ | |
{ | |
"content": [ | |
{ | |
"name": "logo", | |
"title": "Logo", | |
"type": "file", | |
"value": "https://theme.hstatic.net/1000278055/1000356434/14/logo.png?v=1653", | |
"href": "#123" |
<!-- http://pbojinov.github.io/iframe-communication/iframe.html --> | |
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="utf-8"> | |
<title>iframe Window</title> | |
<style> | |
body { | |
background-color: #D53C2F; | |
color: white; |
var path = require('path'); | |
var useDefaultConfig = require('@ionic/app-scripts/config/webpack.config.js'); | |
var procEnv = process.env.IONIC_ENV; | |
module.exports = function () { | |
useDefaultConfig[procEnv].resolve.alias = { | |
"@app/env": path.resolve('./src/environments/environment' + (process.env.IONIC_ENV === 'prod' ? '' : '.' + process.env.IONIC_ENV) + '.ts') | |
}; |
Shader powered image transition
Forked from Szenia Zadvornykh's Pen THREE Text Animation #1.
A Pen by TAYLOR ENGEL on CodePen.
<div class="item-image"> | |
<div class="shopee-item-card__badge-wrapper"> | |
<div class="shopee-badge shopee-badge--fixed-width shopee-badge--promotion"> | |
<div class="shopee-badge--promotion__label-wrapper shopee-badge--promotion__label-wrapper--vi-VN"> | |
<span class="percent">16%</span> | |
<span class="shopee-badge--promotion__label-wrapper__off-label shopee-badge--promotion__label-wrapper__off-label--vi-VN">giảm</span> | |
</div> | |
</div> | |
</div> | |
</div> |
declare global { | |
interface Array<T> { | |
groupBy(elem: T): Array<T>; | |
} | |
} | |
Array.prototype.groupBy = function(prop) { | |
return this.reduce(function(groups, item) { | |
const val = item[prop] |
nssm install SeleniumHub java -jar C:\Selenium\selenium-server-standalone-2.48.2.jar -role hub | |
nssm start SeleniumHub | |
nssm install SeleniumNode1 java -jar C:\Selenium\selenium-server-standalone-2.48.2.jar -role node -hub http://localhost:4444/grid/register -Dwebdriver.chrome.driver=C:\Selenium\chromedriver.exe | |
nssm set SeleniumNode1 DependOnService SeleniumHub | |
nssm start SeleniumNode1 | |
nssm install SeleniumNode2 java -jar C:\Selenium\selenium-server-standalone-2.48.2.jar -role node -hub http://localhost:4444/grid/register -Dwebdriver.chrome.driver=C:\Selenium\chromedriver.exe | |
nssm set SeleniumNode2 DependOnService SeleniumHub | |
nssm start SeleniumNode2 |
{"lastUpload":"2018-03-14T07:28:48.408Z","extensionVersion":"v2.9.0"} |
async login(driver:WebDriver) { | |
await driver.get('https://tiki.vn'); | |
let loginElement = await driver.findElement(By.id('header-user')); | |
let strJavaScript = "var element = arguments[0];" | |
+ "var mouseEventObj = document.createEvent('MouseEvents');" | |
+ "mouseEventObj.initEvent( 'mouseover', true, true );" | |
+ "element.dispatchEvent(mouseEventObj);"; | |
await driver.executeScript(strJavaScript, loginElement); | |
} |