javascript - IFrame 中的动态脚本不触发 window.onload

标签 javascript html iframe onload-event

我动态创建一个 IFrame,然后向其中添加一个 script 标记,其中包含应在框架加载时执行的代码,但它从未执行。

$stage.html("<iframe src='javascript:;' id='frame'></iframe>");
$frame = $("#frame");

frame =  $frame[0].contentDocument ? $frame[0].contentDocument :  $frame[0].contentWindow.document;

script= frame.createElement('script'),
head = frame.getElementsByTagName("head")[0];

script.innerHTML = "window.onload = function() { alert('loaded'); }";

head.appendChild(script);

我假设在将代码添加到 IFrame 之前触发 window onload 事件。有什么办法可以确保它被调用吗?此外,它还需要包含在 window.onload 中,因为它是基于 JS 的代码编辑器,因此 iframe 必须像在浏览器窗口中一样使用react。干杯。

最佳答案

通过使用window.write()解决。

frame = document.createElement("iframe"); 
frame.src = "javascript:;";
document.body.appendChild(frame);

win = frame.contentWindow;
win.document.open();
win.document.write(html);
win.document.close();

关于javascript - IFrame 中的动态脚本不触发 window.onload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4743519/

相关文章:

javascript - 在 iOS/Android 上的 HTML5 混合应用程序中持久存储的可靠方法

reactjs - React.js iframe 源代码

jquery - 使用 Jquery 调整 Tumblr Post iframe 的大小

javascript - iframe 中的 PDF 显示标题为 'Anonymous'

javascript - 将 google map url 转换为 map api 标记

javascript - 按下按钮时连续播放声音JavaScript

javascript - 具有认知语音功能的 Azure Bot 框架无法正常工作

javascript - HTML 中的哪些空白被视为空白节点

javascript - 无法使用 AJAX 和 jQuery POST 到我的 API

javascript - 如何让脚本在网页上最后加载?