iframe内の<script type=”module”>内の関数を呼び出す

スポンサーリンク
スポンサーリンク

背景

iframe内のJavascript関数を実行する
//IFRAME側 callme = function(){ alert('hello'); } //本体HTML側 iframe = document.getElementById(id); iframe.contentWindow.callme();

iframeの関数は☝の方法で呼び出せる

親フレーム
iframe.contentWindow.initView();
子フレーム
<script>
    function initView() { print ('ほげ');};
</script>

問題


iframe内の関数が
<script type=”module”>に書かれていたら…?

解決策

iframe内で関数をwindowsのプロパティとして持たせる

子フレーム
<script type="module">
    window.initView = function() { print ('ほげ');};
</script>

参考

👻globalThis👻と🌏global🌏と🌝this🌝 - Qiita
皆さんこんにちは。今回はJavaScriptの👻globalThis👻について解説しようと思います。globalThisはJavaScript (ECMAScript) の新機能です。現在TC39プロセスのStage 3にあり[^tc...
ライブラリ以外はとりあえず type="module" にしよう : (*x).b=z->a+y/c
◆ 最後に実行してくれるので DOM 構築後に実行するためのリスナ登録不要◆ defer では無理だったインラインコードでもあとで実行される◆ head/body タグ省略時で body の最後に script タグを書くのが難しい場合にも助かる

コメント