让我们直接解决问题:
我实际上正在做一个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天了:/
答案 0 :(得分:0)
是的,与HTML开发相同,您可以在每个XUL文件之间使用您的命名空间。 在firefox扩展中查看名称空间here。
你得到什么错误?
修改强>
在调用browserSupportsWebSockets()之前,您是否初始化了jws对象?
像Pointy所说,你需要在你的jwebsocket.js文件后加载test.js 。