Javascript 在Firefox 1.5中,使用Components.utils.import是一个语法错误

Javascript 在Firefox 1.5中,使用Components.utils.import是一个语法错误,javascript,firefox-addon,xul,Javascript,Firefox Addon,Xul,我想在扩展中使用以下代码: try { Components.utils.import("resource://gre/modules/AddonManager.jsm"); AddonManager.addAddonListener(NFuninstallObserver); } catch(e) {} 不幸的是,Firefox1.5中的JavaScript将第三行视为 语法错误,不处理任何代码 我可以把线路换成 eval('Components.utils.import("resource

我想在扩展中使用以下代码:

try
{
Components.utils.import("resource://gre/modules/AddonManager.jsm");
AddonManager.addAddonListener(NFuninstallObserver);
}
catch(e) {}
不幸的是,Firefox1.5中的JavaScript将第三行视为 语法错误,不处理任何代码

我可以把线路换成

eval('Components.utils.import("resource://gre/modules/AddonManager.jsm");');
一切正常。除了放弃,还有其他建议吗
我想让扩展在Firefox 1.5-4.0中继续工作。*

我还没试过,但这可能有用

Components.utils["import"]("resource://gre/modules/AddonManager.jsm");

为什么选择Firefox1.5?该文件于2005年11月29日发布,安全更新于2007年6月停止。至少Firefox3.5的最新更新是上个月发布的。迎合Firefox的时髦人群?“是的,我喜欢Firefox——但我喜欢最初的Firefox,但在它成为主流之前……”说真的,idealmachine提出了一个很好的观点。是的,我会在AMO上检查你的扩展数据。我最近查看了我的,6000名日常活跃用户中只有30人仍然使用Firefox 3。相关:提到导入在Firefox 5中再次被保留,但Components.utils.import仍然有效。显然,在新版本的Firefox中,保留字可以用作属性(
foo.import=”“
很好),但不能用作独立标识符(
var import=”“
是一个错误)。虽然我认为Firefox决定使用一个名为“import”的函数是个坏主意,但这实际上与ECMA5是一致的。如中所述,这些都是不排除保留字的标识名:
a.import
a[“import”]
a={import:“test”}
。另一方面,以下内容是非法的,因为它是一个标识符,它是一个没有保留字的IdentifierName。标识符用于FunctionDeclaration和FunctionExpression:
function import(){}
import
在早期版本的JavaScript中是一个保留字,但引用的查找似乎有效。(奇怪的是,MDC说,
import
将再次成为保留字。这可不是什么好玩的事!)