Firefox缓存我的扩展程序。怎么避免呢?

时间:2013-08-06 09:17:39

标签: javascript jquery firefox firefox-addon xul

我只想包含jQuery,然后我的自定义JS文件来调用ready()事件。为了测试我在我的.js文件上发出警报,它运行正常。现在,当我更改我的js文件的内容时,它会保持同样的旧警报。现在在控制台中显示:

  

无法读取Chrome清单   '文件:/// C:/Program%20Files/Mozilla%20Firefox/extensions/%7B972ce4c6-7e08-4474-a285-3208198ce6fd%7D/chrome.manifest'。

为什么调用JS文件,特别是jquery函数这么难?

我的文件内容如下:

chrome.manifest用于

content myext content/
overlay chrome://browser/content/browser.xul chrome://myext /content/myext.xul

myext.xul

<?xml version="1.0"?>
<overlay id="Scrapper-Overlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript" src="chrome://fbpicker/content/functions.js" />
</overlay>

functions.js

最初我把警告('测试'); 弹出。后来我说:

window.addEventListener('load', function () {
    gBrowser.addEventListener('DOMContentLoaded', function () 
    {
        alert("addd");
    }, false);
}, false);

但它会继续显示 test 作为弹出窗口。

为什么FF会缓存内容以及如何删除内容?

在控制台上我收到以下警告:

Timestamp: 8/6/2013 2:15:32 PM
Warning: XUL box for _moz_generated_content_before element contained an inline #text child, forcing all its children to be wrapped in a block.
Source File: chrome://global/content/bindings/toolbar.xml
Line: 382

Timestamp: 8/6/2013 2:15:32 PM
Warning: XUL box for _moz_generated_content_before element contained an inline #text child, forcing all its children to be wrapped in a block.
Source File: chrome://global/content/bindings/browser.xml
Line: 0

Timestamp: 8/6/2013 2:15:34 PM
Warning: Key event not available on some keyboard layouts: key="b" modifiers="accel,alt"
Source File: chrome://browser/content/browser.xul
Line: 0


Timestamp: 8/6/2013 2:15:30 PM
Warning: Unknown property 'order'.  Declaration dropped.
Source File: resource://gre-resources/ua.css
Line: 46

1 个答案:

答案 0 :(得分:3)

请参阅有关MDN的"Setting up an extension development environment"文章,特别是有关nglayout.debug.disable_xul_cache的内容。此外,Firefox extension proxy file非常有用。

虽然该页面讨论了很多Firefox,但大多数内容也适用于其他Mozilla驱动的应用程序,例如Thunderbird,Seamonkey或InstantBird。

JFYI:在扩展中使用jquery,特别是基于XUL叠加的扩展,虽然有些不鼓励,但只要你最好load it as a subscript,或者至少.noConflict()它。这是因为叠加共享相同的范围/命名空间。有关详细信息,请参阅XUL School教程中的JavaScript Object Management