2014-05-14 6 views
1

У меня есть расширение для браузера, которое открывает iFrame и позволяет пользователю делать вещи, а затем обновляет значения на родительской странице. Он находится в разных доменах и используется postMessage и receiveMessage, чтобы я мог передавать сообщения через домены. Это хорошо работает, и я могу использовать эти сообщения для установки определенных значений в элементах управления на родительской странице. Я могу установить значение поля выбора, но мне также нужно стрелять выберите событие изменения box'es с помощью JQueryСобытие смены огня при выборе после перекрестного скрипта postmessage

$("#selectid").change(); 

Это работает, если вызываются из пользовательского события на странице, но при вызове из receiveMessage, его просто не запускает событие изменения. Я считаю, что это может быть преднамеренным, чтобы предотвратить атаки с использованием межсайтового сценария, но поскольку я могу установить значение, я также должен был бы вызвать событие изменения. Может ли кто-нибудь подтвердить это поведение и/или знать о работе.

PS. Код, который я использую, является частью большого приложения, и у меня нет демонстрации, которую я могу легко показать, но приведенное выше объяснение довольно подробно.

+1

Этого OnChange обработчик событий связан с помощью JQuery? Может быть, вы должны отправить событие вместо этого: http://stackoverflow.com/a/22404414/1414562 –

+0

Это сделало трюк спасибо - быстрый ответ тоже. Можете ли вы пролить свет на то, почему dispatchEvent работает, а событие изменения jQuery или триггера нет? –

+0

Использование jQuery для запуска события onchange не приведет к привязке обработчика, например, addEventListener() метод javascript –

ответ

2

Вы должны послать onchange события, если обработчик связан с использованием метода addEventListener() в JavaScript:

var evt = document.createEvent("HTMLEvents"); 
    evt.initEvent("change", false, true); 
    $(selector)[0].dispatchEvent(evt); 

Есть некоторый polyfills доступен для поддержки IE8, например: https://gist.github.com/jonathantneal/3748027

Смежные вопросы