2015-06-04 90 views
0

我想在包含文檔引用的webworker中導入一個javascript文件,因此失敗。是否有可能抑制參考例外?我只需要JavaScript文件中不應該使用文檔對象的函數。或者我需要從源碼重建js庫,排除一切我不需要的東西。webworker中的importScripts,忽略引用異常

乾杯, 丹尼斯

回答

1

我沒有類似的東西在網絡工作者負荷角度,在https://stackoverflow.com/a/27931746/1319998。我的解決方案是在全局範圍內創建對象的虛擬版本,只需足夠的屬性和功能,以便Angular在嘗試訪問它們時不會拋出異常,然後使用importScripts加載Angular。

下面的代碼是什麼工作對我來說角,這不僅document,但windowhistory需要以及

// 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'); 
+0

嗯...有趣。這絕對給了我一些想法。雖然現在問題是導入現在在腳本的implementation.createDocument語句中窒息。可能必須查看骨架屬性才能解決此問題。你有一個想法如何解決這個問題? –

+0

@ DennisBauszus不是手。我想你可能不得不在問題中提出更多細節(/另一個問題) –

+0

沒問題。我接受這是正確的答案,將來會回到這一點。 –