Bookmarklet, возвращающий Uncaught TypeError: Невозможно прочитать свойство 'click' из null - PullRequest
0 голосов
/ 18 февраля 2019

Я совершенно новичок в кодировании и пытаюсь создать букмарклет, который будет автоматически устанавливать флажки с определенными именами.В этом случае я пытаюсь заставить букмарклет автоматически щелкнуть флажок «А».

Я использую этот сайт, чтобы проверить мой код.http://jsfiddle.net/fjaeger/L9z9t04p/4/

То, что я сохранил в букмарклете, это:

javascript:(function()%7Bdocument.querySelector('%23check-a').click()%7D)()

Это то, что я получил после ввода

 document.getElementById('check-a').click();

через https://mrcoles.com/bookmarklet/

Мой код работает нормально при входе в консоль Chrome, но когда я использую его в качестве закладки, он выглядит как

Uncaught TypeError: Cannot read property 'click' of null
at < anonymous>:1:47
at < anonymous>:1:57

1 Ответ

0 голосов
/ 18 февраля 2019

Код, который вы написали, правильный.Проблема здесь - веб-сайт jsfiddle.Этот сайт запускает ваш код внутри элемента iframe, а не на самой странице.document относится к текущему документу, но iframe отличается от document, и ваш код не находит элемент.

Вы можете попробовать с

window.frames[0].document.getElementById('check-a').click();

Однако,вы получите сообщение об ошибке, потому что этот фрейм находится в другом источнике, а браузер блокирует доступ к ресурсам из разных источников.

Попробуйте написать простую HTML-страницу, чтобы проверить ваш букмарклет.

...