Javascript 动态DOM元素不可访问?
通过使用调试检查器,我可以看到ID为Foo的DOM元素 这个DOM元素是由我无权访问的脚本动态插入的 因此,在查看->源代码时无法看到它 当我尝试使用访问元素时Javascript 动态DOM元素不可访问?,javascript,Javascript,通过使用调试检查器,我可以看到ID为Foo的DOM元素 这个DOM元素是由我无权访问的脚本动态插入的 因此,在查看->源代码时无法看到它 当我尝试使用访问元素时 document.getElementById('Foo'),它返回一个空的b.c.它找不到它 在调试控制台中也验证了这一点 是否可以获取动态插入的元素 我请求b.c.我想删除节点。是的,您可以: function addElement() { var foo = document.createElement('p');
document.getElementById('Foo')
,它返回一个空的b.c.它找不到它
在调试控制台中也验证了这一点
是否可以获取动态插入的元素
我请求b.c.我想删除节点。是的,您可以:
function addElement() {
var foo = document.createElement('p');
foo.id = "bar";
document.body.appendChild(foo);
}
function getElement() {
alert(document.getElementById('bar'));
}
addElement();
getElement();
另见
您的示例不起作用的原因很难说,因为您没有提供任何细节
猜测一下,您看到的元素位于另一个文档中,嵌入在iframe中,在这种情况下,您必须在调用getElementById
之前对其执行操作。当然,这要视情况而定。
可能您试图在创建元素之前访问它。否,我在页面完全加载后使用了控制台调试器。正如我所建议的,它可能位于iframe中的另一个文档中。iframe位于不同的来源,因此您不能(因为广告是他们提供服务的“报酬”,即使您可以,您也不应该)。大多数DOM检查器将iframe中的嵌套文档显示为DOM的一部分。它们仍然是不同的文档。我在DOM检查器中查看了它。我猜iFrame中的所有内容都是只读的,受浏览器保护?正如我在回答中所说,它受同源策略保护。因此,它的大部分是不可访问的(不是只读的,完全不可访问)。只写几个部分。(这些部分不包括任何元素节点,因为它们都是从无法读取的内容中下降的)。