Можно ли создать функцию в событии загрузки изображения? Есть ли способ сделать это возможным?
<input type='text' name='data' onblur='myFunction(this.value)'>
<img src='img/none.gif' onload = "function myFunction(text){alert(text)}">
изображение и поле будут загружены функцией ajax.
Возможный дубликат Как создать обратный вызов JavaScript, чтобы знать, когда загружается изображение?
@PardeepDhingra - Не дубликат этого. Код уже выполняет обратный вызов при загрузке изображения. Вопрос в том, чтобы создать функцию из этого обратного вызова.
@AnkitKumar - Не дубликат этого. Код уже выполняет обратный вызов при загрузке изображения. Вопрос в том, чтобы создать функцию из этого обратного вызова.
@Quentin ответил на ваш вопрос. Могу я узнать причину, по которой вы хотите это сделать.
Контекст другой, событие находится внутри тега IMG
Я разрабатываю систему для работы с платами контроля доступа, платы могут быть разных моделей, а устройства для считывания карт, биометрии или контроля работают по-разному на каждой плате. Для унификации управления зарегистрированными устройствами мне нужна единая структура в моей базе данных. Поскольку поля различны в каждой ситуации и загружаются информацией из базы данных, передаваемой через функцию ajax для формирования полей, мне нужны функции javascript, дифференцированные в каждой ситуации. Для этого я заставляю каждый загружаемый набор полей создавать собственный сценарий для взаимодействия с датчиками.
В вашем коде используется объявление функции, поэтому вы определяете переменную myFunction
Только в области действия функции onload
(поэтому она не входит в область действия, когда вы пытаетесь вызвать ее из функции onblur
).
Итак, вы может, вам просто нужно явно назначить его глобальной переменной.
<input type='text' name='data' onblur='myFunction(this.value)'>
<img src='https://static.jsbin.com/images/dave.min.svg' onload = "window.myFunction = function myFunction(text){alert(text)}">
… Я не могу придумать ни одного варианта использования хорошо для этого.
Ткс Квентин, прекрасное решение.
Это сложная система, в которой функции отправки команд на карты управления требуют разных полей для каждой ситуации. Основная система управления считывает только 1 поле, поэтому функция, созданная в изображении, будет агрегировать значения доступных полей для передачи значения в одном месте. Все данные создаются с помощью ajax.
дубликат stackoverflow.com/questions/280049/…