如何创建iframe然后使用jQuery将javascript附加到它?

时间:2012-07-26 13:12:02

标签: javascript jquery iframe

我尝试创建iframe,然后向其添加脚本,脚本将运行。 iframe已创建,但在将脚本附加到该iframe的过程中始终会出错。请帮忙。

<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>

1 个答案:

答案 0 :(得分: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