我刚刚完成了我的第一个FF附加组件。 但安装完成后,它会使现有的工具栏图标消失。
这是我的chrome.manifest文件的样子。
content myext content/
overlay chrome://browser/content/browser.xul chrome://myext/content/overlay.xul
locale myext en-US locale/en-US/
skin myext classic/1.0 skin/
style chrome://browser/content/browser.xul chrome://myext/skin/overlay.css
style chrome://global/content/customizeToolbar.xul chrome://myext/skin/overlay.css
为什么会发生这种情况?
如果我需要发布更多文件的内容,请告诉我。
由于
编辑: overlay.xul>
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://myext/skin/overlay.css" type="text/css"?>
<!DOCTYPE overlay SYSTEM "chrome://myext/locale/overlay.dtd">
<overlay id="myext-overlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="loader.js"/>
<script src='jquery.js'/>
<script src="overlay.js"/>
<script src="jquery.cookie.js"/>
<script src="Jquery-ui.js"/>
<script src="json2.js"/>
<script src="script.js"/>
<statusbar id="status-bar">
<statusbarpanel role="button"
onmouseup="KH.bind_btn_click()"
tooltiptext="myext">
<image src="chrome://myext/skin/icon.png" />
</statusbarpanel>
</statusbar>
</overlay>
Dir结构&gt;
/content
overlay.xul
[otehr js files]
/locale
/skin
/chrome/manifest
/install.rdf
答案 0 :(得分:1)
你的一些javascript文件正在破坏Firefox。
Firefox插件上的命名空间是全局的,这意味着如果您使用已存在的某些内容的名称,则会导致冲突。这是一篇关于Global Namespace polution的博文。
在这里,您可以找到create namespaces for you addon的简单文章。
答案 1 :(得分:0)
如果您的脚本在加载事件触发之前尝试访问DOM,那么这将在重叠加载完成之前触发受影响节点上的XBL绑定。特别是当工具栏XBL绑定时,它会尝试恢复自定义工具栏配置,但是为了使其工作,需要加载所有叠加层,以便按钮在调色板中全部可用。在工具栏的特定情况下,Firefox 4中会有一个解决方法,但一般情况下,您仍应避免在加载事件之前访问DOM。