我正在开发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>
答案 0 :(得分:1)
您的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>
答案 1 :(得分:0)
似乎这行代码
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;
});