为什么我的简单 Firefox 扩展现在拒绝 运行?
Why does my simple Firefox extension now refuse to run?
问这样一个基本问题让我很痛苦,但我束手无策。
情况
我正在使用 32 位 Windows 7 机器,运行ning Firefox 34.0.5.
我在目录 C:\Projects\CloudGem\plugin
中有一个简单的 Firefox 扩展。
文件结构如下:
所有其他插件,除了一些 FF 开发者插件,都被禁用。
所有文件均已确认为 UTF-8 编码。
文件内容
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
在地址栏中 运行 脚本按预期运行,在控制台上生成消息。
大约一个月前,我创建了另一个具有几乎相同结构的扩展。它加载并按预期执行脚本。
现在的问题是 code 不会 运行. >____< 当 Firefox 启动时,它绝对没有。没有错误。控制台上没有消息。它就像一只笨狐狸一样坐在那里,而不是 运行 宁我的代码。此外,我之前在一个月前工作的扩展也莫名其妙地在启动时停止 运行ning。
我已经尝试过的
正在创建一个全新的开发者配置文件并在那里安装插件。同样的结果。
将控制台输出调用更改为 dump()
调用、抛出异常、更改 window 标题等。结果相同。
正在更改文件名。同样的结果。
正在迁移到另一台机器(这次是 运行ning Windows XP)。同样的结果。
复制 components
文件夹中的 cloudgem.js
代码,并 运行 将其作为 XUL 覆盖中的脚本。这是一个 hack,以响应 FF 没有 运行ning components
文件夹中的代码这一事实。代码 运行s.
的两个实例都没有
正如我所说,我完全没有想法。我不知道为什么在浏览器启动时这不是 运行ning。从现在到一个月前代码运行时,我的系统唯一的变化是对我的 OS、Firefox 和病毒检查程序进行了一些例行更新。禁用我的病毒检查器 (Avast) 的“web 防护罩”并不能解决问题,而且病毒检查器也没有对插件发出任何可辨别的噪音。
谁能提出解决方案?我 运行 查阅了 MDN 文章,但一无所获。
非常感谢。
我认为您可能看错了控制台。 Add-ons 向浏览器输出信息 Console.The 更一般的问题是如何在浏览器控制台上查看输出。
不是很明显,但是你可以按照这两个步骤来做。
1) 在地址栏中输入 about:config
,然后查找 loop.debug.loglevel
,将值更改为 all
以确保记录所有输出。
您可能需要重新启动浏览器。
2) 打开浏览器控制台,按 Ctrl+Shift+j 或 Hamburger菜单 -> 开发人员 -> 浏览器控制台。
消息应该打印在那里。
问这样一个基本问题让我很痛苦,但我束手无策。
情况
我正在使用 32 位 Windows 7 机器,运行ning Firefox 34.0.5.
我在目录
C:\Projects\CloudGem\plugin
中有一个简单的 Firefox 扩展。
文件结构如下:所有其他插件,除了一些 FF 开发者插件,都被禁用。
所有文件均已确认为 UTF-8 编码。
文件内容
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
在地址栏中 运行 脚本按预期运行,在控制台上生成消息。大约一个月前,我创建了另一个具有几乎相同结构的扩展。它加载并按预期执行脚本。
现在的问题是 code 不会 运行. >____< 当 Firefox 启动时,它绝对没有。没有错误。控制台上没有消息。它就像一只笨狐狸一样坐在那里,而不是 运行 宁我的代码。此外,我之前在一个月前工作的扩展也莫名其妙地在启动时停止 运行ning。
我已经尝试过的
正在创建一个全新的开发者配置文件并在那里安装插件。同样的结果。
将控制台输出调用更改为
dump()
调用、抛出异常、更改 window 标题等。结果相同。正在更改文件名。同样的结果。
正在迁移到另一台机器(这次是 运行ning Windows XP)。同样的结果。
复制
的两个实例都没有components
文件夹中的cloudgem.js
代码,并 运行 将其作为 XUL 覆盖中的脚本。这是一个 hack,以响应 FF 没有 运行ningcomponents
文件夹中的代码这一事实。代码 运行s.
正如我所说,我完全没有想法。我不知道为什么在浏览器启动时这不是 运行ning。从现在到一个月前代码运行时,我的系统唯一的变化是对我的 OS、Firefox 和病毒检查程序进行了一些例行更新。禁用我的病毒检查器 (Avast) 的“web 防护罩”并不能解决问题,而且病毒检查器也没有对插件发出任何可辨别的噪音。
谁能提出解决方案?我 运行 查阅了 MDN 文章,但一无所获。
非常感谢。
我认为您可能看错了控制台。 Add-ons 向浏览器输出信息 Console.The 更一般的问题是如何在浏览器控制台上查看输出。
不是很明显,但是你可以按照这两个步骤来做。
1) 在地址栏中输入 about:config
,然后查找 loop.debug.loglevel
,将值更改为 all
以确保记录所有输出。
您可能需要重新启动浏览器。
2) 打开浏览器控制台,按 Ctrl+Shift+j 或 Hamburger菜单 -> 开发人员 -> 浏览器控制台。
消息应该打印在那里。