2013-09-30 34 views
0

美好的一天。 我想補充的jQuery在我的Firefox擴展 我.xul添加文件,並使用此代碼:jQuery和擴展[提交不工作]

main.xul:

<overlay id="sample" 
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" 
    xmlns:html="http://www.w3.org/1999/xhtml"> 
    <script type="application/x-javascript" src="chrome://mozillatest/content/jquery.js" /> 
    <script type="application/x-javascript" src="chrome://mozillatest/content/main.js" /> 
</overlay> 

main.js文件:

document.addEventListener("DOMContentLoaded", function(){ 
$whatever = jQuery.noConflict(); 

if (window.$whatever) { 
    alert('1 check - OK 1!'); 

$whatever('form').on('submit', function(e) { 
    alert('submited'); 
}); 
}); 

我看到警報「1檢查 - 好1!」 但是,當我導航到一些網站,並按提交,我不能看到警報「submited」。 我在Chrome中編寫擴展程序,這是毫無問題的工作! 我需要做什麼?

回答

1

您正在將jquery加載到browser.xul中,這不是您真正想要的。你希望它在頁面的上下文中。

我建議你看看add-on SDK,而不是寫一個普通的XUL擴展,因爲這不僅會讓你的一般用例更容易,SDK也更像是一個擴展。看看page-mod SDK module

如果你仍然想使用普通的XUL,你必須做一些繁重的工作,SDK會爲你自己做,例如intercepting page loads,然後使用DOM方法(或者jQuery,但不是常規的style 「)與網站進行互動。但在此之前,你需要圍繞browser.xul以及一般的xul窗口,覆蓋圖,<tabbrowser>以及它如何與browser.xul以及更多有關。

+0

謝謝你的回答!但我完全不能理解你......你能給我一些例證嗎?或者,如果對你來說不難,你能否幫助我將擴展改爲使用chrome ..) – user2491643

+0

例子?整個問題太廣泛了。我必須爲您創建一個完整的附加組件,而這不是一個代碼編寫服務。我覺得我給了你必要的指針和信息,你需要開始一個實際的插件。 – nmaier

+0

另一個問題:我可以在沒有jQuery的情況下提交鉤子嗎? – user2491643