繁体   English   中英

如何解决“未捕获的TypeError:无法读取null的属性'click'”

[英]How to fix “Uncaught TypeError: Cannot read property 'click' of null”

我正在开发Chrome扩展程序并收到错误“未捕获的TypeError:无法读取null的属性'click'”。 它可以在控制台中工作,我确保关闭控制台。 我试图在下面的网站上运行它。

https://realtime.demo.sonicwall.com/main.html

popup.js

document.addEventListener('DOMContentLoaded', function () {
document.querySelector('button').addEventListener('click', int);      
});
function int() {
    var source = document.getElementById('j1_64_anchor').click;
}
var coll = document.getElementsByClassName("collapsible");
var i;

popup.html

<body>
<button class="collapsible">Interfaces</button>
<div class="content">
<button onclick="int()" class="collapsible">Interfaces</button>
</div>
</body>

在您的html ,没有ID为j1_64_anchor元素。 因此,您的代码document.getElementById('j1_64_anchor').click(); 将失败。

 document.addEventListener('DOMContentLoaded', function () { document.querySelector('button').addEventListener('click', int) }); function int() { console.log('calling'); var source = document.getElementById('j1_64_anchor').click(); } var coll = document.getElementsByClassName("collapsible"); var i; 
 <button class="collapsible">Interfaces</button> <div class="content" id="j1_64_anchor"> <button onclick="int()" class="collapsible">Interfaces</button> </div> 

似乎这行代码

function int() {
    var source = document.getElementById('j1_64_anchor').click;
}

在dom准备就绪之前被处决。 尝试将其放入DOMContentLoaded事件

document.addEventListener('DOMContentLoaded', function () {
document.querySelector('button').addEventListener('click', int);   
function int() {
    var source = document.getElementById('j1_64_anchor').click;
}
var coll = document.getElementsByClassName("collapsible");
var i;   
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM