jQuery和扩展[提交不工作]

时间:2013-09-30 12:59:21

标签: javascript jquery firefox-addon mozilla

美好的一天。 我想在我的FireFox扩展中添加jQuery 我在.xul中添加文件并使用以下代码:

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!” 但是,当我导航到一些网站并按提交时,我看不到警报“提交”。 我在Chrome中编写扩展程序,它没有问题! 我需要做什么?

1 个答案:

答案 0 :(得分:1)

您正在将jquery加载到browser.xul中,这不是您真正想要的。你想要它在页面的上下文中。

我建议您查看add-on SDK而不是编写简单的XUL扩展名,因为这不仅会使您的常规用例更容易,SDK也更像是Chrome扩展程序。看看page-mod SDK module

如果您仍然想使用普通的XUL,那么您必须完成繁重的工作,SDK会为您自己做,即intercepting page loads,然后使用DOM方法(或jQuery,但不是定期“风格”)与网站互动。但在此之前,你需要围绕browser.xul和xul窗口,覆盖,<tabbrowser>以及它与browser.xul的关系等等。