在iframe加载之前运行脚本
Run script before iframe loads
我正在使用一个嵌入在应用程序中的帮助系统。
帮助的重要部分试图拥有相同的文档。域值,但子iframe似乎运行其文档。在父域设置之前设置域。这是一个问题,因为它抛出安全错误并停止javascript执行。下面是html的基本外观,以给出正确的想法:
<html>
<head>
<!--Occasionally runs second-->
<script src="change-document-domain.js"></script>
</head>
<body>
<iframe>
<html>
<head>
<!--Occasionally runs first-->
<script src="change-document-domain.js"></script>
</head>
</html>
</iframe>
</body>
</html>
帮助非常受构建它的程序的限制。我是否可以对父脚本或父脚本标签进行任何更改,以使其在iframe或其脚本之前加载?
如果你有任何问题,请告诉我,一如既往地感谢!
您可以在脚本加载后设置iFrame的来源。
所以,创建一个函数,将加载脚本页面加载,然后一旦脚本完成,你可以设置一个回调函数,将在脚本完成加载后执行。
function loadScript( url, callback ) {
var script = document.createElement( "script" )
script.type = "text/javascript";
if(script.readyState) { //IE
script.onreadystatechange = function() {
if ( script.readyState === "loaded" || script.readyState === "complete" ) {
script.onreadystatechange = null;
callback();
}
};
} else { //Others
script.onload = function() {
callback();
};
}
script.src = url;
document.getElementsByTagName( "head" )[0].appendChild( script );
}
// call the function...
loadScript('change-document-domain.js', function() {
//executes after the script is laoded.
document.getElementById("myFrame").src = "sourceOfIFrame.html"
});
不确定是否需要这种解决方案。但使用javascript或jquery可能是一个解决方案。
<iframe id="frame" src="">
</iframe>
在父内容javascript加载后触发iFrame加载…
$("#frame").prop("src", "http://iframe-url.com/");
尝试创建一个包含iframe内容的单独页面并喜欢它,这可能会稍微慢一些,但会按顺序加载
基于runcorn的答案(它没有为我做),通过封装在一个函数中添加时间延迟(一秒):
setTimeout(function() {
$("#frame").prop("src", "http://iframe-url.com/");;
}, 1000);
相关文章:
- 如何在加载网页时运行脚本
- 使用JavaScript运行脚本
- javascript动态内容与选择长运行脚本
- Javascript:在新页面中打开链接并运行脚本
- 如何在内部脚本完全加载后运行脚本
- 对couchdb数据库/视图中的所有文档运行脚本/查询
- 单击1个表单中的2个提交按钮中的1个时,如何运行脚本
- 是否可以在node.js依赖项上运行脚本
- "npm运行构建:css"不能工作,而当我自己运行脚本时是可以的
- 运行脚本以禁用脚本
- 在网络whatsapp上运行脚本
- 仅在 url 索引上运行脚本
- [XSS]Expressjs 阻止从 POST 请求运行脚本
- 在触发无限滚动时运行脚本
- 使用Browserify运行脚本,无需先进行构建过程
- "停止运行脚本错误“;在IE8中拥有大量收藏
- PHP-如何让别人可以'不要更改url中的参数,也不要在刷新页面时再次运行脚本
- 如何在不阻塞脚本的情况下运行脚本
- 如果用户登录不起作用,则运行脚本
- 我想在用Jquery.ajax方法加载数据后在Html中运行脚本