0
<html>
    <head>
        <link rel="stylesheet" href="my.css" />
    </head>
    <body>
        <iframe id="baidu-container" src="http://image.baidu.com/i?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1374487244324_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&word=giant" frameborder="0">
        </iframe>
        <script type="text/javascript" src="my.js"></script>
    </body>
</html>

我想my.js在这个 iframe 完全加载后执行脚本。那我该怎么办?谢谢。

4

3 回答 3

1

回答标题中的问题。如果 iframe 内的页面来自另一个域,则不能。否则:

function addScript() {
  var iframeDoc = iframe.contentDocument;
  var s = iframeDoc.createElement('script');
  s.type = 'text/javascript';
  s.src = 'my.js';
  iframeDoc.body.appendChild(s);
}

// I'm creating the iframe programmatically, to make sure the onload handler fires.
var iframe = document.createElement('iframe');
iframe.width = 300;
iframe.height = 100;
iframe.onload = addScript;
iframe.src = "iframe-test2.html";
document.body.appendChild(iframe);
于 2013-07-22T02:40:38.927 回答
1

您可以在 iframe 上使用 onload 事件:

http://www.w3schools.com/jsref/event_frame_onload.asp

于 2013-07-22T02:13:44.520 回答
0
<html>
    <head>
        <link rel="stylesheet" href="my.css" />
    </head>
    <body>
        <iframe id="baidu-container" src="http://image.baidu.com/i?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1374487244324_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&word=giant" frameborder="0">
        </iframe>
        <script>
          window.document.getElementById("baidu-container").onload = function() {
            var s = document.createElement("script");
            s.type = "text/javascript";
            s.src = "my.js";
            window.document.head.append(s);
          }
        </script>
    </body>
</html>
  1. 监听 iframeload事件。
  2. 加载 iframe 文档后,添加/执行您的 JavaScript 代码。
于 2013-07-22T02:32:07.300 回答