У меня есть переменная с именем btn, которую я назначаю функции document.querySelector (). Я знаю, что выбор запроса правильный, потому что он захватывает нужный элемент, когда я запускаю его через консоль браузера. Тем не менее, присвоение дает нулевой результат. Это потому, что я не могу получить HTML таким образом с помощью Osclass Framework?
Я разрабатываю плагин. Этот плагин изменяет форму регистрации. Я добавляю текстовое поле, в котором я использовал прослушиватель событий для обнаружения ввода. Если есть ввод, я хочу, чтобы форма что-то делала, когда нажата кнопка отправки. Там нет проблем с обнаружением этого поля формы, я подозреваю, потому что я только что добавил его в папку плагинов. Однако я не могу взять HTML из темы. Я думаю, что отчасти это связано с тем, что я пытаюсь получить его до загрузки HTML. Несмотря на это, я попытался отложить сценарий и использовать встроенный сценарий для запуска кода после загрузки содержимого DOM. Нет успеха
Вот фрагмент HTML, который я хочу взять.
<div class="controls">
<button type="submit" class="ui-button ui-button-middle ui-button-main"><?php _e("Create", 'bender'); ?></button>
</div>
Вот код, который я использую для этого, и код, который я хочу выполнить:
var btn = document.querySelector("div.controls button");
btn.addEventListener("submit", function() {
console.log("Honey is sweet!");
});
Наконец, вот как я запускаю скрипт:
<script type="text/javascript" async="" defer="" src="<?php echo osc_base_url().'oc-content/plugins/honeypot/fieldcheck.js';?>"></script>
Я должен отметить, что я запускаю это как функцию с хуком osclass: osc_add_hook('user_register_form', 'twf_honeypot_form_field');
Я ожидаю, что переменная захватит кнопку, и к кнопке будет добавлен прослушиватель событий. Как только форма отправлена, она должна записать сообщение в консоли. Вместо этого происходит следующее: Uncaught TypeError: Невозможно прочитать свойство 'addEventListener' с нулевым значением.
Если вы использовали osclass, это потому, что HTML живет в другом месте? Я подумал, что если я отложу выполнение сценария, этот код не будет выполняться до тех пор, пока страница не загрузится, и я все равно смогу захватить HTML. Если нет, как я могу получить этот бит HTML из файла темы?