我很难问这样一个基本问题,但我最终会陷入困境。
我正在使用32位Windows 7计算机,运行Firefox 34.0.5。
我在目录C:\Projects\CloudGem\plugin
中有一个简单的Firefox扩展。
文件结构如下:
除了某些FF开发人员插件外,所有其他插件都被禁用。
cloudgem.js
的两个实例的内容是:
window.addEventListener( "load", function() {
setInterval( function() {
console.log( "Cloudgem service started (2)." );
}, 2000 );
}, false );
console.log( "Cloudgem service started (1)." );
cloudgem.xul
的内容是:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE overlay>
<overlay id="cgem-scriptmount" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript" src="cloudgem.js" />
</overlay>
chrome.manifest
的内容是:
# Content definitions.
content cloudgem chrome/content/
# Overlays.
overlay chrome://browser/content/browser.xul chrome://cloudgem/content/cloudgem.xul
install.rdf
的内容是:
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>cloudgem@cloudgem.net</em:id>
<em:version>1.0</em:version>
<em:type>2</em:type>
<!-- Target application this extension can install into, with minimum and maximum supported versions. -->
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>1.5</em:minVersion>
<em:maxVersion>34.0.*</em:maxVersion>
</Description>
</em:targetApplication>
<!-- Front end metadata. -->
<em:name>CloudGem</em:name>
<em:description>A description of GloudGem.</em:description>
<em:creator>Me</em:creator>
<em:homepageURL>http://cloudgem.net/</em:homepageURL>
</Description>
</RDF>
cloudgem@cloudgem.net
的内容是:
C:\Projects\CloudGem\plugin\
此文件的副本存在于我的Firefox开发者个人资料的extensions
文件夹中。
Firefox似乎无问题地加载扩展程序。它出现在活动插件列表中。所有元数据都是正确的。
在地址栏中运行chrome://cloudgem/content/cloudgem.xul
按预期运行脚本,在控制台上生成消息。
大约一个月前,我创建了另一个具有几乎相同结构的扩展。它已加载并且脚本按预期执行。
现在的问题是代码无法运行。&gt; ____&lt;当Firefox启动时,它什么都不做。没有错误。控制台上没有消息。它只是坐在那里像一只愚蠢的狐狸,而不是运行我的代码。此外,我之前在一个月前工作的扩展程序也在启动时无法解释地停止运行。
创建一个全新的开发者个人资料并在那里安装插件。同样的结果。
更改控制台输出调用dump()
调用,抛出异常,更改窗口标题等。结果相同。
更改文件名称。同样的结果。
迁移到其他计算机(这次运行Windows XP)。同样的结果。
复制cloudgem.js
文件夹中的components
代码,并在XUL叠加层中将其作为脚本运行。这是一个黑客攻击,以回应FF没有在components
文件夹中运行代码的事实。这两个代码都没有运行。
正如我所说,我完全没有想法。我不知道为什么这不是在浏览器启动时运行。从现在到一个月前,当代码工作时,我的系统上唯一的变化是对我的操作系统,Firefox和病毒检查程序的一些例行更新。禁用我的病毒检查程序(Avast)的“网络屏蔽”无法解决问题,并且病毒检查程序没有对插件发出任何明显的噪音。
有人可以提出解决方案吗?我在MDN文章中跑来跑去,一无所获。
提前非常感谢。
答案 0 :(得分:1)
我认为您可能正在查看错误的控制台。附加组件输出信息到浏览器控制台。更一般的问题是如何在浏览器控制台上查看输出。
这不是那么明显,但你可以按照这两个步骤来做到这一点。
1)在位置栏中输入about:config
,然后查找loop.debug.loglevel
,将值更改为all
,以确保记录所有输出。
您可能需要重新启动浏览器。
2)打开浏览器控制台,通过 Ctrl + Shift + j 或汉堡菜单 - &gt;开发者 - &gt;浏览器控制台。
应在那里打印消息。