Javascript 未捕获类型错误:无法读取属性';单击';空的

Javascript 未捕获类型错误:无法读取属性';单击';空的,javascript,Javascript,我试图单击类名为(xyz)的div document.querySelector('.header search wrap')。单击() 只要您运行 document.querySelector('.xyz'); 如果它说null,这意味着在那个时间点没有类为xyz的元素,所以在null上调用click()会导致错误 如果元素是iframe中的子元素,则无法通过查询文档(如document.querySelector())来选择元素;如果需要,您必须检索其文档: 但另一件事是,您无法访问不在

我试图单击类名为(xyz)的div

document.querySelector('.header search wrap')。单击()

只要您运行

document.querySelector('.xyz');

如果它说null,这意味着在那个时间点没有类为xyz的元素,所以在null上调用click()会导致错误

如果元素是
iframe
中的子元素,则无法通过查询文档(如
document.querySelector()
)来选择元素;如果需要,您必须检索其
文档

但另一件事是,您无法访问不在同一来源的
iframe
(我想,您还没有指定),因为“同一来源策略”适用于


关于你的statament:

当您打开控制台时,它将显示未捕获类型错误:无法 读取null的属性“click”,但在搜索所有 .标题搜索在“元素”选项卡中换行,然后再次执行 document.querySelector('.header search wrap')。单击();它将显示 你只是没有定义这意味着它可以工作


这是因为当您检查所述
iframe
中的元素时,DevTools的“上下文”(context)会更改为
iframe
,您可以自由使用
document.querySelector()

如果没有这样的元素,
document.querySelector('.xyz')的结果
将为
null
,这将导致该错误,因为您的代码实际上为
null。单击()。您确定页面中有这样的元素吗?你能创建一个工作示例吗?snippet/jsfiddle…你能用HTML标记更新你的问题吗?听起来你好像在加载页面之前加载了脚本。请尝试将脚本放在结束正文标记之前,或将其放在window.onload=function(){/*此处*/}window.onload=function(){document.querySelector('.xyz')。单击();}。
.header search wrap
不在同一文档中。它位于另一个文档(即
iframe
)中。当您打开控制台时,它将显示未捕获的TypeError:无法读取null的属性“click”,但当您搜索“全部”时。标题搜索在元素选项卡中换行,然后再次执行document.querySelector(“.header搜索换行”)。单击();它只会向您显示未定义,这意味着它可以工作。因此,没有办法做到这一点吗?@DavidCring如果您不在同一个域上:不是真的,至少对gammerson.com来说,如果其他域允许通过
访问控制允许源站
标题进行交叉源站,那么它们也可以工作。