2015-11-12 52 views
0

我需要添加以下形式的全局庫:Browserify窗口對象不具有全局

window.Foo = function() { 
    api = {}; 
    api.myVar = GLOBALS; 
    return api; 
} 

使用外部腳本標籤我的項目。 GLOBALS是從window.FOO依賴的另一個庫中添加到window的另一個變量。但是,當我在我的一個Browserify模塊中訪問window時,window.Foo不存在。如果我嘗試勻稱window.FOO,那麼它的全局依賴關係不可用。不過,我可以看到並使用鉻檢查器的window.Foo。我如何獲得模塊中的「真實」窗口對象?感謝您的任何幫助。

回答

0

想通了!該項目是一個鉻擴展,它被沙箱。它與Browserify無關。

0

您應該使用類似下面的模式,其中Foo將連接到任何對象this指向在所有環境中。就像在瀏覽器中,將其添加到window

(function(global) { 
    global.Foo = function() { 
     return {}; 
    } 
})(this);     
+0

我編輯了我的答案一點。這不起作用,因爲'window.Foo'還取決於添加到窗口對象的全局變量。 – jsnelgro

+0

我測試了我的代碼,它可以在瀏覽器和節點中使用。如果'Foo'依賴於其他全局變量,請擴展問題以獲取更多信息。 – rajuGT

+0

好的,我再次更新了我的問題。希望這可以解決所有的問題。 – jsnelgro