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')
// from here: | |
// @HostListener('document:click', ['$event']) | |
// clickout(event) { | |
// console.log("target?",event.target); | |
// if(this.eRef.nativeElement.contains(event.target)) { | |
// console.log("clicked inside",event); | |
// } else { | |
// console.log("clicked outside",event); |
import { Component } from '@angular/core'; | |
import { Platform } from 'ionic-angular'; | |
import { StatusBar } from '@ionic-native/status-bar'; | |
import { SplashScreen } from '@ionic-native/splash-screen'; | |
import { TabsPage } from '../pages/tabs/tabs'; | |
import { FCM } from '@ionic-native/fcm'; | |
import { ApiProvider } from '../providers/api/api'; | |
@Component({ |
{ "products": [ { "id": 1011873625, "title": "Garlic Bread", "featured_image": "//product.hstatic.net/1000259614/product/upload_b585232256ae43f9bb79be0437d6e165_large.jpg", "handle": "garlic-bread", "compare_at_price": 16000000, "compare_at_price_format": "160,000₫", "price": 14000000, "price_format": "140,000₫", "available": true, "sale": "-13%" } , { "id": 1011828140, "title": "PEPPER SPAGHETTI", "featured_image": "//product.hstatic.net/1000259614/product/upload_b16978af13134090bac7d2bb1bf187f1_large.jpg", "handle": "pepper-spaghetti", "compare_at_price": 0, "compare_at_price_format": "0₫", "price": 15000000, "price_format": "150,000₫", "available": true, "sale": "-0%" } , { "id": 1011873657, "title": "Salmon Salad", "featured_image": "//product.hstatic.net/1000259614/product/garden-salad_large.png", "handle": "salmon-salad", "compare_at_price": 18000000, "compare_at_price_format": "180,000₫", "price": 15700000, "price_format": "157,000₫", "available": true, "sale": "-13%" } , { "id": 1011828057, "title": " |
[ | |
{ | |
"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] |