2010-12-01 70 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

第三方我的意思是他们希望我添加一个`