Я пытаюсь вызвать файл JS из файла functions.php в Wordpress. Когда я запускаю тот же код в jsFiddle, все работает. Итак, я пришел к выводу, что это специфично для Wordpress.
Вы можете найти jsFiddle здесь: jsFiddle код
А это мой код в functions.php
add_action( 'wp_enqueue_scripts', 'my_enqueue_assets' );
function my_enqueue_assets() {
wp_enqueue_style( 'cookies-consent-style', get_stylesheet_directory_uri().'/cookies-consent/cookies-consent.css' );
wp_enqueue_script('cookies-consent', get_stylesheet_directory_uri().'/cookies-consent/cookies-consent.js');
wp_enqueue_script('cookies-consent-content', get_stylesheet_directory_uri().'/cookies-consent/content.js');
}
Все три URL-адреса действительны и доступны с веб-сайта. Все они есть в исходном коде, и когда я их посещаю, они открываются без ошибок.
Когда я запускаю тот же код в jsFiddle с файлом content.js на панели Javascript, я вижу всплывающее окно в правом нижнем углу.
Кроме того, у меня нет ошибок на консоли. И если я добавлю console.info('hello'); в content.js, его все равно не будет на выходе консоли.
Обновлено: проблема была исправлена. Это была проблема с плагином Breeze, из-за которой все файлы JS были перемещены в тег head. Итак, мне пришлось исключить его, чтобы продолжить загрузку в нижний колонтитул.
Обычно не публикуют ссылки, так как через несколько месяцев они могут быть недоступны. Но это тот самый www.stackprime.com
Когда я проверяю источник www.stackprime.com и ищу строку куки-согласие, я не вижу в очереди файлов, которые имеют отношение к куки-согласие. Также я вижу ошибку javascript: Uncaught TypeError: Невозможно прочитать свойство firstChild со значением null в файле breeze_c189e3fe9cf5476c30ec3ab2c90d26eb.js в строке 9.
Я вижу, что вы используете плагин Breeze - WordPress Cache Plugin, а также вам удалось найти миниатюрный файл js для сценария куки-контент. Вы пытались обернуть свой сценарий в jQery(document).ready(function(){})?
@OmarTanti Проверьте мой обновленный пост. Мне удалось это исправить, спасибо, что указали мне на плагин Breeze. Он автоматически переместил JS в верхний колонтитул, а не в нижний колонтитул, и код не мог работать. Спасибо :)
Отлично, рад, что вам удалось решить проблему :) Вы можете попробовать продолжать использовать плагин Breeze, не исключая файл, передав параметр 'footer' в wp_enqueue_script: wp_enqueue_script ('cookies-agreement-content', get_stylesheet_directory_uri (). '/cookies-consent/content.js', [' cookies-content '],' 0.1 ', true);



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Иногда сценарии могут зависеть от других сценариев, поэтому необходимо убедиться, что сценарии поставлены в очередь в правильной последовательности. Функция wp_enqueue_script принимает параметр $in_footer, чтобы убедиться, что сценарий загружается в нижний колонтитул, если он зависит от других сценариев, загружаемых в заголовок. Он также принимает другой параметр $deps (зависимости).
Даже если вы используете плагин Breeze - WordPress Cache, вы все равно можете попытаться установить для параметра $in_footer значение true, чтобы избежать исключения скрипта из плагина кеширования. Попробуйте изменить свои wp_enqueue_scripts следующим образом:
wp_enqueue_script('cookies-consent', get_stylesheet_directory_uri().'/cookies-consent/cookies-consent.js', array(), '0.1', true);
wp_enqueue_script('cookies-consent-content', get_stylesheet_directory_uri().'/cookies-consent/content.js', array('cookies-content'), '0.1', true);
Можете дать ссылку или вы работаете локально? Применяется ли CSS?