在工作中,我必須處理供應商期望我們放入我們網站的很多(有時很糟糕的)JavaScript。它們中的一些向全局範圍添加了任意的,未命名空間的名稱。我一直在玩弄有關沙盒這些程序的不同想法,因此他們無法直接訪問全球範圍,但我一直無法想到任何可能真正起作用的東西。 (我想到了刪除代碼,但我確信這不是一個好主意。)我可以沙盒第三方JavaScript來保護全局名稱空間嗎?
有什麼解決方案可以保持全局範圍的清潔,同時仍然使用任意的第三方JavaScript?
編輯:@ kirilloid的評論告訴我我不清楚這個代碼是如何交付的。我通常不會將代碼放入我們的網站。大多數情況下,我只是給了一個URL並要求創建一個指向它的script
標記。
插入代碼放到你的函數調用中,只顯示函數,你的需要。 http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth – kirilloid 2012-03-09 14:51:20
@kirilloid對此感到抱歉。如果我有代碼使用模塊模式,我可以使用模塊模式。我會用上面的* eval *思路做到這一點,但大多數情況下我只是指向指向其他地方託管的第三方腳本的URL。我已更新我的問題以反映這一點。 – kojiro 2012-03-09 14:55:07