Как получить доступ и запустить полевые события из расширения JS? - PullRequest
0 голосов
/ 15 марта 2010

У меня есть расширение, которое помогает автоматически отправлять формы для процесса на работе. Мы сталкиваемся с проблемой двойных блоков выбора, в которых выбран один параметр, а затем этот выбор изменяет параметры другого поля. Поскольку установка свойства selected для параметра true не вызывает событие onchange поля, я пытаюсь сделать это с помощью кода.

Проблема, с которой я столкнулся, заключается в том, что если я пытаюсь получить доступ или запустить функции на объекте поля из расширения, я получаю ошибку

Ошибка: необработанное исключение: [Исключение ... "Компонент недоступен" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: chrome: //webformsidebar/content/webformsidebar.js :: WebFormSidebar_FillProcess :: строка 499 "данные: нет]

строка, вызывающая ошибку ...

if (typeof thisField.onchange === 'function')

Строка прямо перед тем, как она работает просто отлично ...

thisField.options[t].selected=true;

... поэтому я не уверен, почему это приводит к такой ошибке.

Что меня больше всего удивляет, так это то, что проверка существования функции приводит к ошибке.

Такое чувство, что проблема связана с кодом, выполняющимся в контексте расширения вместо документа окна браузера. Если да, есть ли способ вызвать функцию в контексте окна браузера? Нужно ли мне как-то вводить код на страницу? Есть еще идеи? Спасибо

1 Ответ

0 голосов
/ 06 ноября 2010

Единственный способ, которым мы нашли это, - это ввести код на страницу.

...