2012-03-22 67 views
1

我在我的GWT應用程序中遇到了一個問題,我在其中使用另一個腳本,它本身使用underscore.js庫。該腳本定義了全局變量var _;GWT污染全球Javascript命名空間

問題在於GWT生成的代碼還定義了var _以用於應用程序特定的目的;這與另一個腳本中定義的_相沖突。

我也不知道GWT可能定義的其他腳本可能會在不知不覺中干擾的其他全局變量。

(編輯:從this question看來,_是它使用的唯一符號)。

有什麼方法可以將GWT生成的變量放入我選擇的單獨全局變量中嗎?

回答

2

除非你使用xs連接器(現在已不建議有利於xsiframe連接的)或sso連接,GWT代碼iframe內運行,因此,它不污染全局命名空間,更重要的是(幾乎)不受外部腳本污染全局命名空間的影響。

在HTML主頁JS環境中運行的唯一的劇本是*.nocache.js腳本,它定義了一個函數(由你的GWT模塊的名稱),並簡單地調用它,從而特異性污染全局命名空間。

您鏈接到iframe 沙箱中運行的代碼的討論問題,因此它不應與underscore.js衝突。

+0

確實。實際上,我將自己的自定義鏈接器應用到我的應用程序,以便使用通常的瀏覽器上下文運行GWT代碼;看起來我需要模擬iframe命名空間隔離。 – funkybro 2012-03-22 16:11:29