#javascript #html #google-chrome-extension
#javascript #HTML #google-chrome-extension
Вопрос:
Я создаю расширение Chrome и сталкиваюсь с проблемой, что даже если я изменил текст элемента, кнопка отправки не включается, как обычно, и другие вещи не обрабатываются как ввод вручную.
Я пытаюсь запустить событие изменения текста, чтобы обработать нормальное поведение элементов при вводе вручную, используя следующий скрипт;
var el2=document.getElementById("tmsg");
el2.innerText="hello world";
try{
el2.fireEvent("onchange");
}catch(error)
{
alert("err:" error);
}
Тем не менее, текст задан, но появляется следующая ошибка
TypeError: el2.fireEvent is not a function
Я ищу решение с помощью Java script, без решений jQuery, но ни одно из них не сработало для меня.
Может кто-нибудь, пожалуйста, указать мне, что я здесь делаю не так, или лучший способ сделать это?
Ответ №1:
Вы получаете эту ошибку, потому eventTarget.fireEvent()
что это проприетарный метод, используемый в Internet Explorer.
Современный и стандартный способ ручной отправки событий, согласно MDN, заключается в следующем:
// CREATE EVENT
const event = new Event('change', {bubbles: true});
// GET TARGET ELEMENT
const el2 = document.getElementById('tmsg');
// DISPATCH EVENT
el2.dispatchEvent(event);
Надеюсь, это сработает.
Комментарии:
1. Спасибо. использование dispatchEvent устранило ошибку. Но все же я не мог заставить это работать. Я все еще пытаюсь разобраться в проблеме.