Как исправить «Uncaught TypeError: Не удается прочитать свойство 'click' of null" - PullRequest
0 голосов
/ 13 мая 2019

Я разрабатываю расширение Chrome и получаю сообщение об ошибке «Uncaught TypeError: Невозможно прочитать свойство 'click' of null". Это работает в консоли, и я убедился, чтобы закрыть консоль. Я пытаюсь запустить это на сайте ниже.

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>

Ответы [ 2 ]

1 голос
/ 13 мая 2019

В вашем html нет элемента с идентификатором 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>
0 голосов
/ 13 мая 2019

Кажется эта строка кода

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

выполняется до того, как дом будет готов. Попробуйте положить его внутрь 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;   
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...