Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用iframe.contentWindow将内容推送到iframe中_Javascript_Html_Dom_Iframe - Fatal编程技术网

Javascript 使用iframe.contentWindow将内容推送到iframe中

Javascript 使用iframe.contentWindow将内容推送到iframe中,javascript,html,dom,iframe,Javascript,Html,Dom,Iframe,在一些情况下,我需要通过从外部页面将内容推送到iframe来解决问题。考虑到iFrame周围的浏览器安全性,大多数情况下这是不可能的,而且我在使用数据URL获取内容时遇到了很多麻烦 最近,我发现contentWindow: var iframe = document.getElementById('myIframe'); iframe = (iframe.contentWindow) ? iframe.contentWindow : (iframe.contentDocument.documen

在一些情况下,我需要通过从外部页面将内容推送到iframe来解决问题。考虑到iFrame周围的浏览器安全性,大多数情况下这是不可能的,而且我在使用数据URL获取内容时遇到了很多麻烦

最近,我发现contentWindow:

var iframe = document.getElementById('myIframe');
iframe = (iframe.contentWindow) ? iframe.contentWindow : (iframe.contentDocument.document) ? iframe.contentDocument.document : iframe.contentDocument;
iframe.document.write('<body><script src="http://anything/you/want.js"></script><h1>Any html content or script tags</h1></body>');
var-iframe=document.getElementById('myIframe');
iframe=(iframe.contentWindow)?iframe.contentWindow:(iframe.contentDocument.document)?iframe.contentDocument.document:iframe.contentDocument;
iframe.document.write('任何html内容或脚本标记');

…可用于将内容动态推送到iframe中。它似乎在所有情况下都能很好地工作,所以我只是想知道这种方法是否有一些我还没有看到的主要缺点,或者仅仅因为它在ie8中不起作用而不是很普遍?这似乎太好了,不可能是真的……

你想用IFrames做什么?除非您的目标是将脚本注入到另一个域的页面中以进行刮取/读取,否则可能有更好的方法来实现您想要的内容。据我所知,这并没有任何固有的缺点,但它很容易失败,而且可能是一个坏主意。长话短说,页面上的第三方内容有一个脚本,它使用document.write编写内容。如果我不将它隔离到iframe中,它会覆盖整个页面(document.write在初始页面加载后注入时会这样做)。很有趣。您是否考虑过覆盖
文档。按照编写
方法?它是黑客的,但我觉得它比注入IFrame更容易控制。这是一个很好的选择,谢谢。