2010-03-15 68 views
0

我有一個擴展,可以幫助自動爲工作流程提交表單。我們遇到了雙選框的問題,其中一個選項被選中,然後該選擇改變另一個字段的選項。由於設置一個選項選擇屬性爲true不會觸發字段的onchange事件,我試圖通過代碼來實現。如何從擴展js訪問和運行現場事件?

我碰到的問題是,如果我嘗試從擴展的領域對象上訪問或運行的功能,我得到的錯誤

Error: uncaught exception: [Exception... "Component is not available" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: chrome://webformsidebar/content/webformsidebar.js :: WebFormSidebar_FillProcess :: line 499" data: no]

導致錯誤的行...

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

權利之前它只是罰款線...

thisField.options[t].selected=true; 

...所以我不知道爲什麼,這導致這樣的錯誤。

最令我驚訝的是我檢查是否存在該函數會導致錯誤。

感覺這個問題與在擴展而不是瀏覽器窗口文檔的上下文中運行的代碼有關。如果是這樣,有什麼辦法可以在瀏覽器窗口上下文中調用一個函數嗎?我是否需要以某種方式實際將代碼注入頁面?任何其他想法?謝謝

回答

0

我們發現這一點的唯一方法就是將代碼注入頁面。