我正在尝试在包含文档引用的webworker中导入javascript文件,因此失败。是否有可能压制引用异常?我只需要javascript文件中的一些函数,它们不应该使用文档对象。或者我是否需要从源代码重建js库,不包括我不需要的所有内容。
干杯, 丹尼斯
答案 0 :(得分:1)
我做了类似的事情,在https://stackoverflow.com/a/27931746/1319998的网络工作者中加载Angular。我的解决方案是在全局范围内创建对象的虚拟版本,只有足够的属性和函数,以便Angular在尝试访问它们时不会抛出异常,然后使用importScripts
加载Angular。
以下代码适用于Angular,它不仅需要document
,还需要window
和history
// In the web worker
// Angular needs a global window object
self.window = self;
// Skeleton properties to get Angular to load and bootstrap.
self.history = {};
self.document = {
readyState: 'complete',
querySelector: function() {},
createElement: function() {
return {
pathname: '',
setAttribute: function() {}
}
}
};
// Load Angular: must be on same domain as this script
self.importScripts('angular.js');