2010-12-01 74 views
2

我的一位客戶詢問他們是否可以添加一些JavaScript來跟蹤用戶對其網站的行爲。乍一看,我擔心它會干擾網站上的其他第三方分析腳本,因爲它看起來像雙方都使用了相同的JavaScript壓縮器。我不想梳理和搜索所有可能的命名衝突。 。 。如何封裝第三方JavaScript文件,以免污染全球範圍?

有沒有一種方法可以包含第三方腳本(位於獨立域中的腳本文件),但將它們包裝在自己的名稱空間中或給它們自己的作用域,以使它們不會與其他全局聲明的變量發生衝突,並且功能?

回答

2

它不應該是一個問題。 JavaScript壓縮器不會重命名全局變量(出於顯而易見的原因),任何精心設計的腳本都不會公開許多(任何)全局變量。如果他們希望將其部署到您的頁面上,則有責任防止衝突。

3

像這樣:

(function() { 
    // insert code here 
})(); 

享受;)

+1

請注意,如果您的客戶端不使用* var *做聲明變量,它們將在全局範圍內結束。 – 2010-12-01 22:24:46

+0

或者他們手動將它們添加到全局名稱空間(window。* = 123;) – 2010-12-01 22:25:49

+0

第三方我的意思是他們希望我添加一個`