2013-07-22 59 views
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> 

我想在iframe完全加載後執行my.js中的腳本。那麼我該做什麼?謝謝。我可以將JavaScript注入iframe嗎?

+1

如果您需要從父窗口進行控制,您可以爲iframe元素上的'load'事件設置事件偵聽器,然後訪問iframe的內容。你有沒有使用jQuery? – Derek

回答

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. 聽的iframe load事件。
  2. 當iframe文檔被加載後,添加/執行您的JavaScript代碼。
0

回答標題中的問題。如果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); 
相關問題