Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.07.2018, 15:29
Новичок на форуме
Отправить личное сообщение для aleksqqq Посмотреть профиль Найти все сообщения от aleksqqq
 
Регистрация: 22.07.2018
Сообщений: 3

Почему иногда ReferenceError: FUNCTION is not defined
Почему так может быть? Как можно отловить причину?
Ошибка возникает у примерно 0.5% пользователей, в основном на смартфонах и планшетах. С разными функциями.

index.php:
...
<script type="text/javascript"> function block_hide() {...} </script>

<script type="text/javascript" src="js/menu.js?v=220718"></script>
...

menu.js:
function block() { block_hide(); }//при вызове block(): ReferenceError: block_hide not defined


Так тоже: window.block_hide();
И так тоже:
var block = new Block_hide(); block.hide();//ReferenceError: Can't find variable: Block_hide //когда в index.php  function Block_hide() {...}

Из страниц только index.php
Ответить с цитированием
  #2 (permalink)  
Старый 22.07.2018, 17:14
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 901

возможно, у них стоит какой-то плагин к браузеру, который запрещает выполнение js-кода, встроенного в верстку (не из отдельного файла), и в итоге block_hide не создается
Ответить с цитированием
  #3 (permalink)  
Старый 22.07.2018, 17:50
Новичок на форуме
Отправить личное сообщение для aleksqqq Посмотреть профиль Найти все сообщения от aleksqqq
 
Регистрация: 22.07.2018
Сообщений: 3

Так тоже вылетает ошибка:

<script type="text/javascript"  src="js/block.js?v=220718"></script>//function block_hide() {...}
<script type="text/javascript" src="js/menu.js?v=220718"></script>//function block() { block_hide(); }//при вызове block(): ReferenceError: block_hide not defined


Думал, что плагин какой-то может перезаписывать функции. Как бы это поймать. Нужно подумать.
Ответить с цитированием
  #4 (permalink)  
Старый 22.07.2018, 18:09
Новичок на форуме
Отправить личное сообщение для aleksqqq Посмотреть профиль Найти все сообщения от aleksqqq
 
Регистрация: 22.07.2018
Сообщений: 3

Создам переменную mylog и буду в нее записывать инициализацию, вызовы, содержимое. При вылете ошибки отправлю mylog себе. Погляжу, что получится.
Ответить с цитированием
  #5 (permalink)  
Старый 23.07.2018, 10:43
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

aleksqqq,
А так?
window.onload = function() { 
   function block_hide() {...} 
}

И в следующем скрипте лучше тоже так.

Последний раз редактировалось Dilettante_Pro, 23.07.2018 в 10:46.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Иногда не прогружается ответ от ajax запроса Sergey1986 AJAX и COMET 14 21.03.2018 10:25
Prototype. Одноблочное определение псевдокласса. Литеральная форма не робит. Почему? GuardCat Общие вопросы Javascript 6 03.10.2011 12:46
Почему не определяется втарая переменная? Арман Общие вопросы Javascript 3 09.04.2011 10:14
jQuery is not defined torin2k jQuery 1 16.06.2010 07:27
Почему это работает? (инклуд JS в JS) Василий Б. Общие вопросы Javascript 4 11.06.2010 11:41