Wordpress Javascript инъекция не работает - PullRequest
0 голосов
/ 13 февраля 2020

Я создал js файл в своей дочерней теме, содержащий этот код

    const prID = "10496";
const EL_prID = document.querySelector(`[data-product-id="${prID}"]`);

if (EL_prID) {
  EL_prID.parentNode.classList.add('is-hidden');}

Я использую плагин для вставки кода в заголовок моей страницы: я добавил URL моего js файла в заголовке.

Я добавил код Css: .is-hidden: {display: none;}

Когда я проверяю отладчик, в заголовке появляется файл js , Но мой элемент html не спрятан как следует.

Где моя ошибка? Должен ли я добавить balise в мой файл javascript до и после кода?

спасибо

1 Ответ

2 голосов
/ 13 февраля 2020

Если ваш JS файл находится в заголовке, это означает, что при его выполнении DOM страницы загружается не полностью. Обернуть вещи внутри слушателя события загрузки (если вы должны сделать это в vanilla JS):

window.addEventListener('load', function() {
  const prID = "10496";
  const EL_prID = document.querySelector(`[data-product-id="${prID}"]`);

  if (EL_prID) {
    EL_prID.parentNode.classList.add('is-hidden');
    // ...?
  }

});

Это срабатывает, когда все элементы загружены, таким образом, селектор запросов должен по крайней мере найти то, что он должен к (если селектор совпадает).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...