无法在动态异步Iframe上写入文档

时间:2015-04-03 17:52:59

标签: javascript jquery performance iframe asynchronous

我使用Dynamic Async Iframe加载了我们的广告,但我收到了此警告,广告无法加载。

  

无法执行'写'在'文件':不可能写   从异步加载的外部脚本转换为文档,除非   它被明确地打开了。

这是我用来加载广告的代码

var adSrc = '<?php echo esc_url( $src ); ?>';
        var escapedAdSrc = adSrc.replace(/\//g,'\\/');
        var adWidth = <?php echo $width; ?>;
        var adHeight = <?php echo $height; ?>;
        var theiFrame = document.createElement('iframe');
        theiFrame.frameBorder = 0;
        var iFrame = jQuery('#<?php echo $id; ?>').append(theiFrame);

        var adDoc = theiFrame.contentWindow.document;
        theiFrame.style.cssText = 'width:' + adWidth + 'px;height:' + adHeight +'px;';

        //adDoc.open().write('<body onload="location.href=\'' + escapedAdSrc + '\'">');
        adDoc.open().write('<body onload="' + 
            'var d = document;d.getElementsByTagName(\'head\')[0].' + 
            'appendChild(d.createElement(\'script\')).src' + 
            '=\'' + escapedAdSrc + '\'">');
        adDoc.close();

我相信部分是因为广告脚本在脚本中有document.write,这就是我收到此错误的原因。但我不确定如何解决问题,因为我的脚本是第三方脚本。

0 个答案:

没有答案