2010-12-01 5 views
2

私のクライアントの1人が、ウェブサイトにユーザーの行動を追跡するためのJavaScriptを追加できるかどうかを尋ねています。一見すると、サイト上の他の第三者アナリティクススクリプトを妨害する恐れがあるのは、両者が同じJavaScriptコンプレッサを使用しているように見えるからです。私はすべての可能な命名の衝突を徹底的に調べて検索したくありません。 。 。サードパーティのJavaScriptファイルをカプセル化して、グローバルスコープを汚染しないようにするにはどうすればよいですか?

サードパーティのスクリプト(別のドメインにあるスクリプトファイル)を含めることはできますが、独自の名前空間にラップするか、独自のスコープを指定して、グローバルに宣言された他の変数と衝突しないようにする方法はありますか?機能?このよう

答えて

2

それは問題になることはありません。 Javascriptのコンプレッサーはグローバル変数の名前を変更しません(明白な理由から)。うまく設計されたスクリプトは多くの(任意の)グローバルを公開しません。彼らがあなたのページにそれを配備したいのであれば、衝突を防ぐのは彼らの責任です。分離のために

+0

私は、クラッシュを防ぐことが自分の責任であるということについて、あなたの意見が好きです。それは私が私のクライアントに戻るとき私にいくつかの弾薬を与える。 –

3

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

をお楽しみください。)

+1

クライアントが* var * do変数を使用しない場合、クライアントはグローバルスコープになります。 –

+0

またはそれらをグローバルな名前空間に手動で追加する場合(ウィンドウ。* = 123;) –

+0

サードパーティーでは、私が彼らに '

関連する問題