Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Почему иногда ReferenceError: FUNCTION is not defined (https://javascript.ru/forum/events/74581-pochemu-inogda-referenceerror-function-not-defined.html)

aleksqqq 22.07.2018 15:29

Почему иногда 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

Alexandroppolus 22.07.2018 17:14

возможно, у них стоит какой-то плагин к браузеру, который запрещает выполнение js-кода, встроенного в верстку (не из отдельного файла), и в итоге block_hide не создается

aleksqqq 22.07.2018 17:50

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

<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


Думал, что плагин какой-то может перезаписывать функции. Как бы это поймать. Нужно подумать.

aleksqqq 22.07.2018 18:09

Создам переменную mylog и буду в нее записывать инициализацию, вызовы, содержимое. При вылете ошибки отправлю mylog себе. Погляжу, что получится.

Dilettante_Pro 23.07.2018 10:43

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

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


Часовой пояс GMT +3, время: 07:07.