javascript - 在 iframe 加载之前运行脚本

标签 javascript html iframe asynchronous

我正在使用嵌入在应用程序中的帮助系统。

帮助的重要部分尝试具有相同的 document.domain 值,但子 iframe 似乎在父 iframe 之前运行其 document.domain 设置。这是一个问题,因为它会引发安全错误并停止 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 - 在 iframe 加载之前运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23742344/

相关文章:

javascript - 使用 jQuery 的 attr ("src", url) 在 iframe 中加载 url 时 try catch

javascript - 动态加载ArcGIS在线模块

javascript - 使用 jquery 选择不在选项中的文本

javascript - 通过 Javascript 的 location.reload(true) 传递变量

javascript - 如何使用 MooTools 将 HTML 添加到现有的 div

javascript - 使用 jquery 检索原始 html,而不是呈现的 html

javascript - Bing map 未使用 asp.net mvc 显示位置

javascript - 使用 Javascript 按数字和字母顺序对表格进行排序

用于插入的 php 数组内爆

javascript - 将 CSS 应用于 iframe