Добрый день! Не могу решить следующую задачу:

Есть html-страница с формой (не моя, изменению не подлежит), на которой, среди прочего, есть элемент

<select id="foo" onchange="changefoo()">

задача - изменить из расширения (в боковой панели) текущую опцию в select так, чтобы сработала on-функция. Код

getContent().document.getElementById("foo").selectedIndex = ind;

действительно меняет текущую опцию. А вот on-функция не вызывается. Что делать?

Заранее спасибо!

попробуйте добавить:

Выделить код

Код:

var evt = getContent().document.createEvent("HTMLEvents");
evt.initEvent("change", true, false);
getContent().document.getElementById("foo").dispatchEvent(evt);
Выделить код

Код:

getContent().document.getElementById("foo").onchange()

To Shutnik:

Тоже хорошо, но предыдущий вариант будет работать и в тех случаях, когда функция повешена каким-нибудь сценарием через перехватчик событий, а не вшита в разметку. Впрочем, вопрошавшему это, может быть, и не нужно.

У вопрошавшего, действительно, on-функция вызвалась. Все оказалось просто. Спасибо!