未捕获的ReferenceError:未定义窗口

时间:2013-11-22 04:15:08

标签: jquery html5 jquery-mobile cordova

importScripts('js/jquery.js');
importScripts('js/jquery.mobile-1.2.0.js');
importScripts('cordova.js');
importScripts('DataBase.js');
importScripts('SaveData.js');

self.addEventListener('message', function(e) {
    queryDB(function(arr) {

        self.postMessage(e.data + arr);

    });


}, false);

这里我试图从数据库中检索数据并使用html 5工作线程显示在父页面中。但是我得到以下错误。

Uncaught ReferenceError: window is not defined 

2 个答案:

答案 0 :(得分:3)

你不能导入脚本jQuery,因为jQuery需要DOM访问权限,网络工作者不具备。

答案 1 :(得分:0)

如果您在使用 Web Workers 使用 importScripts 功能时遇到此错误,那是因为您导入的脚本可能引用了 window 对象;这在 Web Workers 中不受支持。

要解决此问题,请执行以下操作:

  1. 将此代码放在导入脚本中的任何其他代码之前:
var _window = this || self || window;

以上确保在不支持的 self 之前调用 window(与 Web Workers 兼容)。

  1. 将所有出现的 window 替换为 _window