Переопределить js функцию
-
Вызываю js на странице с переопределением функции, но на деле ничего не происходит. Пробовал и
function LoadVideo(){...}
, иwindow.LoadVideo = function(){...}
, пробовал "выполнять при каждой загрузке страницы" и "Яваскрипт", функция не заменяется. В консоли тоже все глухо, ошибок нет.
-
@blackhacker Для начала в каком скоупе переопределяете функцию?
Что будет если не переопределять функцию, а попробовать вывести ее значение?
-
@support Функция не позвращает значение, а переопределение нужно, чтобы уменьшить таймер, который инициализируется внутри нее. Функция создается в
$( document ).ready(function() { function LoadVideo(){...}})
, но я так же пробовал создавать функциюwindow.LoadVideo = function(){...}
и назначать на onclick кнопки, по которой происходит клик в шаблоне. Значение таймера парсится из ответа ajax-запроса внутри функции, доступ к переменной не получить извне, поэтому пришлось заменить всю функцию.
Попробовал все упростить до максимума, выполняю js с таким содержимым:
$('#startBtn').on('click', function() { ... });
, но все равно не работает, выполняется старая функция. Вместо точек идет код функции LoadVideo.
-
$( document ).ready(function() { function LoadVideo(){...}})
Такую функцию не переопределите
-
@support делаю
alert('test');
на странице, алерт не выводится.
-
@blackhacker alert в БАС отключен
-
@support $.ajax тоже не переопределить, для перехвата данных? Сделал так - не работает
$.oldAjax = $.ajax; $.ajax = function(obj){ console.log('test'); obj.oldSuccess = obj.success; obj.success = function(data){ obj.oldSuccess(data); } $.oldAjax(obj); };
Но проблема в том, что даже console.log не выводится
-
@blackhacker поставьте ; перед $.oldAjax(obj);
-
@blackhacker И этот скрипт будет работать только после того, как $ будет определен, если хотите сделать лучше смотрите defineProperty
-
Javascript выполняется на активной вкладке? После каждого действия делал console.log, и увидел, что лог пропадает после того, как открывается новая вкладка.
-
Нашел причину ошибки - если при загрузке страницы были ошибки в сторонних js файлах, то выполнение кода не работает..
Нет, должно работать
-
@blackhacker Проект с вашим кодом тоже работет
-
@support У меня работает внедрение js до того момента, как открывается новая вкладка. после этого console.log не выводится. если я скину вам проект, сможете посмотреть? все данные для проекта предоставлю. если бы форум поддерживал возможность выкладывать под хайдом, то отправил бы на форуме. а так не хочется, чтобы в паблик попало, проект для магазина
-
@blackhacker А, это потому что инструменты разработчика остаются со старой вкладки
-
@support А js в таком случае выполняется на новой вкладке? или на старой? или вообще не выполняется?
-
@blackhacker Js выполняется на текущей. С js все нормально и ошибки не при чем. Просто вы не видите сообщения, которое выводите.
Вот так можно обновить инструменты http://prnt.sc/e8o9nj
-
@support Спасибо большое за помощь) а то уже всю голову сломал, думал, магия какая-то
-
@blackhacker Пожалуйста