2010-06-10 87 views
1

我已经尽力使我的扩展尽可能简单,它现在不包含任何皮肤/ css,它只有'statusbar'在一个单独的'覆盖'。如何阻止干扰其他扩展的我的Firefox扩展?

问题是,安装时,它隐藏了我的firefox 3.6.3的“一体化工具栏”扩展名的前三个图标。

在没有“一体化工具栏”的其他两台机器上,它隐藏了网页开发工具栏的所有图标!

chrome.manifest用于

content  stackoverflow content/ 
content  stackoverflow content/ contentaccessible=yes 

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

locale stackoverflow en-US locale/en-US/ 

browser.xul

<overlay id="dch-browser-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 
     <script type="application/x-javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"/> 
     <script src="stackoverflow.js" /> 

     <statusbar id="status-bar"> 
      <statusbarpanel id="stackoverflow-status-bar-icon" class="statusbarpanel-iconic" src="chrome://stackoverflow/content/icon_small.png" tooltiptext="&runstackoverflow;" onclick="stackoverflow.run()" /> 
     </statusbar> 
</overlay> 

我已经很努力简化扩展上找原因,​​但失败了,任何建议/想法将受到欢迎。

thx。

+1

很难回答,没有一些截图和代码,我想。 – 2010-06-10 11:04:39

+0

我已经把上面的核心代码,如果您需要任何其他信息,请让我知道... – ccppjava 2010-06-10 11:12:38

+0

我会假设“状态栏”不是唯一的。尝试将其名称更改为“stackoverflow-status-bar”。 – ChrisF 2010-06-10 11:17:02

回答

1

没有看到web开发者工具栏的代码,我会说这是你的覆盖(“dch-browser-overlay”)非唯一的id。

附注:你真的真的不应该在浏览器中从web加载jQuery。将它打包到你的扩展中(在你的情况下,如果你是MITMd,它会减慢启动速度提供一个安全漏洞)。

+3

完全同意!在扩展中从Internet载入JavaScript是非常危险的,您在计算机上给予该JavaScript完整权限(读取,写入和执行)!此外,直接在XUL中加载库(即使来自扩展内部)是一个问题,因为它污染了全局名称空间,并可能与其他扩展名甚至是Firefox代码发生冲突。 – flpmor 2010-06-10 18:31:52

+0

我同意jQuery评论,我只是想知道如果已经由前端加载,浏览器是否会缓存扩展脚本? 将根据建议改变。 关于冲突,因为我的Web开发人员工具栏仍在工作(我的'一体式工具栏'发生冲突),我的朋友的Web开发人员工具栏被隐藏(所有图标不显示),他没有“ in-one'工具栏... – ccppjava 2010-06-11 09:26:12

+0

如果有空间(磁盘缓存很小),它可能会缓存它。本地文件访问仍然会更快。 IDS冲突会导致奇怪的问题,其中一个会“赢”,另一个奇怪的事情发生。这可能是你的问题(即使它不是我引用的特定ID)。 – sdwilsh 2010-06-11 17:54:37