2012-07-26 51 views
1

我試圖創建iframe,然後添加腳本,腳本將運行。創建了iframe,但在將腳本附加到該iframe的過程中始終會出現錯誤。請幫忙。如何創建iframe,然後使用jQuery將javascript附加到它?

<div align="center" id="adframe1"> 
<script type="text/javascript"> 
var response1 = '<script>var ad_unit="123";</scr'+'ipt><script src="http://abc.com/abc.js"></scr'+'ipt>'; 
$('<iframe id="adframe1mopub"/>').appendTo('#adframe1'); 
$('#adframe1mopub').ready(function() { 
$('#adframe1mopub').contents().find('body').append(response1); 
}); 
</script> 
</div> 
+0

你能否詳細說明「總是會出錯」?什麼錯誤? – jbabey 2012-07-26 13:15:24

+0

什麼是錯誤?聽起來你正在嘗試做某些因安全原因而不允許的事情。我相信你不能操縱iframe上的腳本來處理XSS問題。 – 2012-07-26 13:16:04

+0

將JavaScript代碼放入iframe而不是直接執行它的意義何在? – kgautron 2012-07-26 13:16:35

回答

3

你可以試試這個腳本:

HTML:

​<div id=container-iframe>​</div>​​​​​​​ 

JS:

var response1 = '<script>var ad_unit="123";</scr' + 'ipt><script src="http://abc.com/abc.js"></scr' + 'ipt>'; 

$('<iframe></iframe>', { id: 'adframe1mopub' }).bind('load', function(event) { 

    if (!this.contentWindow) { 
     return; 
    } 

    this.contentWindow.document.body.innerHTML += response1; 

}).appendTo('#container-iframe'); 

但是,這將是實現這個最好的方法:

$('<iframe></iframe>', { id: 'myiframe' }).bind('load', function(event) { 

    if (!this.contentWindow) { 
     return; 
    } 

    var scripWidthCode = document.createElement('script'); 
    scripWidthCode.type ='text/javascript'; 
    scripWidthCode.innerText = 'var ad_unit="123";'; 

    this.contentWindow.document.getElementsByTagName('head')[0].appendChild(scripWidthCode); 

    var scripWidthSrc = document.createElement('script'); 
    scripWidthSrc.type ='text/javascript'; 
    scripWidthSrc.src = 'http://abc.com/abc.js'; 

    this.contentWindow.document.getElementsByTagName('head')[0].appendChild(scripWidthSrc); 

}).appendTo('#container-iframe'); 

test

相關問題