Я попытался получить доступ и изменить свойства некоторого элемента из события onerror некоторого изображения. Но ... когда я загружаю страницу, я получаю Uncaught TypeError: Не могу вызвать метод ... из null. Я знаю, что обычно это происходит потому, что элемент еще не загружен.javascript's document.getElementById возвращает null, но работает с консоли
Я добавил задержку 10 секунд, используя setTimeout. Теперь я загрузил код и успешно достиг элемента через консоль (как в Chrome, так и в Firefox). Я получил сообщение TypeError.
Обратите внимание, что код из «onerror» отлично работает с консоли.
Я попытался сделать то, что хотел, по-другому: я попытался переопределить глобальную функцию из свойства «onerror» изображения. Но опять же: глобальная функция не изменилась. Это не вопрос времени, и код отлично работал с консолью (тот же код onerror, что он успешно переопределил глобальную функцию с консоли как в Chrome, так и в FF).
Я приведу здесь несколько примеров попыток я сделал (я переписан их быстро, надеюсь, без какой-либо опечатки):
<img src='' onerror='setTimeout(function(){document.getElementById(someElementString).addEventListener(clickString,function(){alert(1234);});},6000);' height=100 width=100 />
<img src='' onerror='function(){setTimeout(function(){document.getElementById(someElementString).addEventListener(clickString,function(){alert(1234);});},6000);};' height=100 width=100 />
<img src='' onerror='f = function(){setTimeout(function(){document.getElementById(someElementString).addEventListener(clickString,function(){alert(1234);});},6000);}; f();' height=100 width=100 />
<img src='' onerror='setTimeout(function(){window.globalFunction = function(e){alert(656565);};},6000);' height=
200 width=100 />
я завернул OnError как функция, но без успеха.
Если я заменил код onerror простым предупреждением, он работает; И снова: он работает также с консоли, даже до запуска кода onerror.
В чем причина этого? Любая помощь будет оценена!
Это похоже на проблему с вашими строковыми кавычками. Вы должны использовать как одиночные, так и двойные кавычки.Измените цитату, которую вы используете вокруг 'someElement', для двойных кавычек' '' (Первая одинарная кавычка перед тем, как 'someElement' закрывает первую цитату, которая следует за' onerror') Ie '' – enhzflep
Второй - это безымянный (!). Я сомневаюсь, что он делает что-нибудь полезное, даже если оно помещено в консоль. – Bergi
Вы правы - так, как я его написал, это действительно не сработает. Это не проблема кавычек. 'и' click 'на самом деле являются строковыми объектами в моем коде (с более значимыми именами), поэтому единственные цитаты в начале и в конце. Я отредактирую свой вопрос. Спасибо! –