Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firefox ChromeWorker未加载脚本_Javascript_Firefox_Firefox Addon_Jsctypes - Fatal编程技术网

Javascript Firefox ChromeWorker未加载脚本

Javascript Firefox ChromeWorker未加载脚本,javascript,firefox,firefox-addon,jsctypes,Javascript,Firefox,Firefox Addon,Jsctypes,我需要与本机代码通信以执行某些操作。我已经成功地使用了JS Ctypes,一切都如预期的那样顺利。由于我的web应用程序与本机代码的通信需要一些时间,因此会阻塞主JS线程,从而冻结UI 因此,我需要创建一个单独的线程来委托与本机代码的通信,并将结果发回主线程,主线程将向用户提供适当的反馈。Firefox正是我需要使用的,因为它们是可以访问JS Ctypes的独立线程 我的问题是,就我的一生而言,我似乎无法使用这种方法加载脚本。这就是我目前拥有的: main.js netscape.securit

我需要与本机代码通信以执行某些操作。我已经成功地使用了JS Ctypes,一切都如预期的那样顺利。由于我的web应用程序与本机代码的通信需要一些时间,因此会阻塞主JS线程,从而冻结UI

因此,我需要创建一个单独的线程来委托与本机代码的通信,并将结果发回主线程,主线程将向用户提供适当的反馈。Firefox正是我需要使用的,因为它们是可以访问JS Ctypes的独立线程

我的问题是,就我的一生而言,我似乎无法使用这种方法加载脚本。这就是我目前拥有的:

main.js

netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');                         
Components.utils.import("resource://gre/modules/Services.jsm");

var worker = new ChromeWorker("js/fpman/myworker.js");
worker.onmessage = function(e){
      console.log(e.data);
};

worker.postMessage('start');
myworker.js

self.onmessage = function(e){
   var sum = 1 + 1;
   postMessage("Sum is " + sum);
};
当该代码在主JS中运行时,我在firebug控制台上看到这个错误

Failed to load script: http://localhost:8080/myapp/js/fpman/myworker.js (nsresult = 0x805303f4)
需要注意的是,当我使用普通工作线程时,即

var worker = new Worker("js/fpman/myworker.js");
js文件(myworker.js)加载得很好,我得到了预期的结果,但这当然不能满足我的需要,因为普通的工作人员无法访问js Ctypes。所以问题似乎是我如何创造ChromeWorker。有人能告诉我如何从应用程序中恰当地实例化和使用ChromeWorker对象吗。我已经看过很多关于ChromeWorker在扩展中使用的参考资料,但这不是我想要的,我想在我的web应用程序中使用ChromeWorker


谢谢。

那个特定的错误是NS\u error\u DOM\u BAD\u URI


我不相信你所做的会起作用,而且我知道它不会很快在Firefox中起作用,因为enablePrivilege正在完全消失。

这个特定的错误是NS\u error\u DOM\u BAD\u URI


我不相信你所做的会起作用,而且我知道它不会很快在Firefox中起作用,因为enablePrivilege正在完全消失。

Mike,你知道为什么普通Worker对象可以加载脚本,而ChromeWorker无法加载同一脚本吗?嗯,关于你的第二条评论,我们将如何从我们的web应用程序访问特权操作?>你知道为什么普通工作者对象可以加载脚本,而ChromeWorker无法加载相同的脚本吗。嗯,您正试图将外部URL作为chrome文件加载,并赋予它chrome权限。我认为这是不允许的。>展望未来,我们将如何从我们的web应用程序访问特权操作您将需要编写一个附加组件,并在其中添加功能,然后从您的web应用程序调用它。您的所有用户都必须安装附加组件(我知道这并不理想)。请随意发表您的意见-我正在尝试从一个附加组件中执行类似的操作(同时我们在FireFox 25上),我还得到“加载脚本失败:file:///C:/Mike,你知道为什么一个普通的Worker对象可以加载脚本,而ChromeWorker却无法加载相同的脚本吗?嗯,关于你的第二条评论,我们将如何从我们的web应用程序访问特权操作?>你知道为什么普通工作者对象可以加载脚本,而ChromeWorker无法加载相同的脚本吗。嗯,您正试图将外部URL作为chrome文件加载,并赋予它chrome权限。我认为这是不允许的。>展望未来,我们将如何从我们的web应用程序访问特权操作您将需要编写一个附加组件,并在其中添加功能,然后从您的web应用程序调用它。您的所有用户都必须安装附加组件(我知道这并不理想)。请随意发表您的意见-我正在尝试从一个附加组件中执行类似的操作(同时我们在FireFox 25上),我还得到“加载脚本失败:file:///C:/“等,并提供我要加载的文件的正确路径。