Javascript 如何将document.body.appendchild(';指向根文档而不是iframe

Javascript 如何将document.body.appendchild(';指向根文档而不是iframe,javascript,html,dom,Javascript,Html,Dom,我们如何确定目标 document.body.appendchild('an element')仅将其放入根文档中,避免进入iframe 我是这样做的 var a=document.createElement('a') document.body.appendchild(a) 刚找到它 iframe>#document>html>body>a 真诚的帮助是令人满意的如果您从iframe内部调用此代码,那么您需要使用此代码(也可以将appendChild require节点作为参数,它不能是字符

我们如何确定目标
document.body.appendchild('an element')
仅将其放入根文档中,避免进入iframe
我是这样做的

var a=document.createElement('a')
document.body.appendchild(a)
刚找到它

iframe>#document>html>body>a


真诚的帮助是令人满意的

如果您从iframe内部调用此代码,那么您需要使用此代码(也可以将appendChild require节点作为参数,它不能是字符串):

父对象获取iframe所在文档的窗口对象,然后获取文档,然后获取实际的DOM节点(
documentElement
将是html元素)


注意:由于同源策略,iframe和父文档需要位于同一个域上。如果您想使用不同域上的文档,您需要控制它们,并使用postMessage或类似API从iframe发送消息并在父文档上获取。

听起来像是
文档
指的是如果您从未声明过
document
,那么您的Javascript上下文已经在iframe中开始了,您需要将其转义到onload=function()之后放置的Chrome内容脚本上{…不知道其他情况。测试页面是@yaasin。你确定这是正确的站点吗?这只是一个下载视频的公共服务,里面有很多JS代码。这些代码必须在onload=function()之后放在Chrome内容脚本扩展上{..为了避免iframe。扩展必须完全适用于任何页面,上面的页面只是意外发现为StumbleBlock的一个示例。脚本正在进行屏幕筛选,但将来将添加多个功能,即如果用户将鼠标悬停在第63行的锚元素注入处,则在此处进行缩放e addon:@yaasin我不确定您是否能够将其用作用户脚本,若要访问跨源iframe,您需要特殊权限(可能需要获得权限的real chrome扩展),我认为用户脚本与普通JavaScript相同,在页面上添加了脚本标记。除非脚本同时在父页面和iframe子页面上运行,否则您可以使用postMessage在两者之间进行通信。
var a = parent.document.createElement('p');
a.innerHTML = 'hello';
parent.document.documentElement.appendChild(a);
// or
parent.document.body.appendChild(a);