Поддержка Плагины перестал работать плагин Simple Ajax Chat

  • не отправляются сообщения, в консоли есть какая-то ошибка «TypeError: document.getElementById(…) is null»
    то есть что то стало вдруг со скриптом.
    Как то можно исправить?

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Я вижу в скрипте
    currentJSNonce = document.getElementById('sac_js_nonce').value;
    а в html
    <div class="sac_js_nonce"></div>
    то есть, ищет элемент с ID, которого нет, зато есть одноименный class. Если это не «рукопись», а формируется каким-то плагином, возможно, он просто с ошибкой.

    И еще
    jQuery('.synved-tab-list', context).removeClass('synved-tab-list-nojs')...
    ищет то, чего нет — элемент с классом synved-tab-list

    Юрий (@yube), в очередной раз спасибо. От меня обратная связь. Странно то, что нработоспособность случилась неожиданно. До этого уже месяц всё было нормально. И никаких значений связанных с ‘sac_js_nonce’ я не менял…
    ‘synved-tab-list’ — это от плагина WordPress Shortcodes, установил его уже давно, тепрь отключил его.
    И всё заработало. Странно как эти два плагина взаимосвязаны?
    Получается что один скрипт не давал работать другому?
    Кстати после удаления этого плагина стала нормально работать панель (до этого не открывался блок виджетов) Видимо плагин как то блокировал работу сайта из-за наличия неактивных шорткодов в виджетах….

    актуально ли теперь это ? нужно ли исправлять? —

    Я вижу в скрипте
    ‘currentJSNonce = document.getElementById(‘sac_js_nonce’).value;’
    а в html
    ‘<div class=»sac_js_nonce»></div>’
    то есть, ищет элемент с ID, которого нет, зато есть одноименный class. Если это не «рукопись», а формируется каким-то плагином, возможно, он просто с ошибкой.

    для сведения — в файле nonce.php (от плагина чата)
    есть такой код со словом «sac_js_nonce» и это уже id, а не class

    $random_nonce = array_rand($sac_nonces, 1);
    $sac_nonce = isset($sac_nonces[$random_nonce]) ? base64_encode($sac_nonces[$random_nonce]) : 0;
    echo '<input type="hidden" id="sac_js_nonce" name="sac_js_nonce" value="'. $sac_nonce .'" />';

    Странно как эти два плагина взаимосвязаны?

    Связь, которой быть не должно, может появиться в результате минификации js, когда автомат сгребает все скрипты в одну кучу, и тогда ошибка одного скрипта может помешать работать другому. Другой случай — использование в скриптах одних и тех же имен переменных в глобальной области видимости.

    Делать детальное вскрытие используемых на Вашем сайте скриптов и связей между ними мне недосуг, извините.

    для сведения — в файле nonce.php (от плагина чата)

    Мне отсюда не видно nonce.php, но видно html. И там такое:

    				<div id="sac-user-submit">
    					<div class="sac_js_nonce"></div>
    					<input type="submit" id="submitchat" name="submit" class="submit" value="Отправить" />
    					<input type="hidden" id="sac_lastID" value="4" name="sac_lastID" />
    					<input type="hidden" name="sac_no_js" value="true" />
    					<input type="hidden" name="PHPSESSID" value="f7f60410048b14ba6e7f80e53fff34bc" />
    					<input type="hidden" id="sac_nonce" name="sac_nonce" value="64d9cf8910" />					
    				</div>
    

    Юрий (@yube) мне достаточно общих рассуждений.
    А как то можно отследить двойников переменных? только в ручном режиме все скрипты проверять?
    Что такое минификация и как её избежать?

    Мне отсюда не видно nonce.php

    вот код, выложил на сервис, который вы рекомендовали
    код

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «перестал работать плагин Simple Ajax Chat» закрыта для новых ответов.