@tarojs/components
Version:
1 lines • 1.07 kB
JavaScript
import{r as o,c as s,h as t}from"./p-f72fcd8c.js";const i="undefined"!=typeof window&&"function"==typeof window.addEventListener,e=new Set;let n=!1;function r(o){e.forEach((s=>{s.handleMessage(o)}))}const a=class{constructor(t){o(this,t),this.onLoad=s(this,"load",7),this.onError=s(this,"error",7),this.onMessage=s(this,"message",7),this.src=void 0}componentDidLoad(){e.add(this),i&&!n&&(window.addEventListener("message",r),n=!0)}disconnectedCallback(){e.delete(this),i&&n&&(e.size>0||(window.removeEventListener("message",r),n=!1))}handleMessage(o){var s;const t=null===(s=this.iframe)||void 0===s?void 0:s.contentWindow;if(!t||o.source!==t)return;const{src:i,onMessage:e}=this;e&&e.emit({data:o.data,origin:o.origin,src:i})}render(){const{src:o,onLoad:s,onError:i}=this;return t("iframe",{ref:o=>{this.iframe=o},class:"taro-webview",onLoad:t=>{t.stopPropagation(),s.emit({src:o})},onError:s=>{s.stopPropagation(),i.emit({src:o})},src:o})}};a.style="iframe{border:none}.taro-webview{z-index:999;width:100%;height:100%;position:fixed;top:0;bottom:0}";export{a as W}