2014-02-25 33 views
4

我想建立我的圖書館作爲網絡工作者「只是工作」,如果在new Worker()中分解了。爲此,我需要在self上附加一個事件監聽器來接收消息。如何確定腳本是否已包含在Web Worker中?

如果我的腳本已被包含在另一個開發人員的Web Worker中使用importScripts(),我怎麼知道我是什麼時候我是第三方,並且不應該在自己上附加事件偵聽器來接收消息?

回答

1

您可以嘗試像這樣使用WorkerGlobalScope

if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) { 
    // code 
} else { 
    // code 
} 

也就是說,你可以檢查沒有document來檢查你的員工是。

另外,specs說:

的DOM的API(Node對象,Document對象等)不可用 工人在該版本中規範。

+0

我讀過規範的方式,以及從目前爲止我看過的測試,是一個包含的腳本也會有一個對自我的引用。如果是這種情況,並且自我總是指向每個spec鏈接的「WorkerGlobalScope」(關鍵詞:「global」),我很困惑這是如何幫助我確定自己是否是第三方。 – buley

相關問題