Javascript 有没有一种方法可以在document.write之后通过JS访问iframe的主体?

Javascript 有没有一种方法可以在document.write之后通过JS访问iframe的主体?,javascript,iframe,document-body,Javascript,Iframe,Document Body,问题在于回填土管。提供的脚本标记使用documentwrite在代码中写入自身。我不能按原样使用它,因为如果另一个adunit失败,它应该用作回填。 pageload之后,我将异步加载并检查一个VAST标记,如果出于某种原因,VAST标记无效或其他原因,则应使用提供的回填脚本标记 显然,我不能将提供的标记与document.write一起写入其中,因为整个内容在页面呈现后都会消失,而对于div.innerHTML来说,该标记毫无意义,因为它无法运行,更糟糕的是,它似乎再次使用document.w

问题在于回填土管。提供的脚本标记使用documentwrite在代码中写入自身。我不能按原样使用它,因为如果另一个adunit失败,它应该用作回填。 pageload之后,我将异步加载并检查一个VAST标记,如果出于某种原因,VAST标记无效或其他原因,则应使用提供的回填脚本标记

显然,我不能将提供的标记与document.write一起写入其中,因为整个内容在页面呈现后都会消失,而对于div.innerHTML来说,该标记毫无意义,因为它无法运行,更糟糕的是,它似乎再次使用document.write本身。(不确定)

我现在尝试将其放入iframe中,但是包含iframe的整个adunit大小都被弄乱了,因为document.body的每个默认值都有8px的边距。 例如,一个300x250px的adunit会有iframe主体的8px边距,而iframe在一个300x250px的adunit容器中,而300x250px本身会得到滚动条

我可以通过'domObj.contentWindow.document.body.style.margin=“0px”'轻松获取正文,但是在使用document.write之后,样式就消失了,更糟糕的是,我无法再访问正文

function addPassbackCode(iframe, code) {
    var iframeDoc = iframe.contentWindow.document; 
    console.log(iframeDoc);
    iframeDoc.open();
    iframeDoc.write(code);                    
    iframeDoc.close();     
    console.log(iframeDoc);
}
上面很好地输出了
#文档两次

function addPassbackCode(iframe, code) {
    var iframeDoc = iframe.contentWindow.document; 
    console.log(iframeDoc.body);
    iframeDoc.open();
    iframeDoc.write(code);                    
    iframeDoc.close();     
    console.log(iframeDoc.body);
}
这一个输出
null
我只是假设提供给我的脚本标记再次使用document.write,但这会使我无法访问iframe中的主体吗

在我将标记添加到iframe中之后,是否有任何方法可以动态更改iframe中的主体样式? 我讨厌iFrame,几乎从不使用它们,但这似乎是唯一的方法。
所有这些都应该在好的老式普通JS中完成。

console.log()
的时候,iFrame的主体似乎还没有准备好。添加
.onload()
eventhandler似乎可以解决这个问题

function addPassbackCode(iframe, code) {
    var iframeDoc = iframe.contentWindow.document; 
    console.log(iframeDoc.body);
    iframeDoc.open();
    iframeDoc.write(code);                    
    iframeDoc.close();     
    iframe.onload = function() {
        console.log(iframe.contentWindow.document.body);
    };
}