将Jscript文件加载到Firefox扩展中

时间:2010-05-15 16:16:05

标签: javascript firefox websocket

让我们直接解决问题:

我实际上正在做一个firefox扩展,我想在其中实现jWebsocket API以构建一个小聊天。 我得到了我的主脚本文件,名为 test.js ,jWebsocket lib进入js文件夹。 只是为了让你知道,这是我有史以来的第一个firefox扩展。

所以在我的XUL文件中我得到了这个(当然,只有脚本部分,接口代码没有显示):

    <overlay id="test-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <script type="application/x-javascript" src="chrome://test/content/test.js" />
  <script type="application/x-javascript" src="chrome://test/content/js/jwebsocket.js" />

jwebsocket.js 是我需要根据jWebsocket网站调用的文件。

在我的主脚本文件 test.js 中,我从:

开始
if (jws.browserSupportsWebSockets()) 
{
  jWebSocketClient = new jws.jWebSocketJSONClient();
} 
else 
{
  var lMsg = jws.MSG_WS_NOT_SUPPORTED;
  alert(lMsg);
}

jws是在 jwebsocket.js 文件中创建的命名空间。

当然,我已经在后台运行所需的独立服务器,并正常工作。

因此,根据我在各种网站上的理解,如果将js文件加载到javascript分配的内存空间(带有标记),则每个文件之间应该可以使用所有命名空间/函数。但这主要是针对面向HTML的问题,所以我不确定它是否适用于XUL / Firefox环境。

但是脚本在第一次jws调用时仍然失败。

关于这里出了什么问题的任何想法?我现在被困2天了:/

1 个答案:

答案 0 :(得分:0)

是的,与HTML开发相同,您可以在每个XUL文件之间使用您的命名空间。 在firefox扩展中查看名称空间here

你得到什么错误?

修改

在调用browserSupportsWebSockets()之前,您是否初始化了jws对象?

像Pointy所说,你需要在你的jwebsocket.js文件后加载test.js