たった二つです。
- 名前空間を一つだけ用意して、それのみを使うこと
- 設定はグローバル変数ではなく、引数渡しにすること
そうでないと、導入したサイトで変数衝突が起こる公算が大きくなります。

それが実際に発生したのが、右の画像です。表示がぐしゃぐしゃになっています。
問題を起こしたのは、以下のsnippetでした。
<script type="text/javascript" src="http://blogchart.jp/js/blogparts.js"></script> <script type="text/javascript"><!-- id="22";blogurl="http://blog.livedoor.jp/dankogai/";partstype="b";viewBlogparts(); // --></script>
javascriptをロードして関数を一個実行するという、典型的なウィジェットのsnippetですが、id
、blogurl
、type
といういかにも衝突しそうなグローバル変数が三つも使われています。
これを例えば
jp.blogparts.show({id:22,blogurl:"http://blog.livedoor.jp/dankogai/",partstyle:"b"});
という風にすれば、このようなことはまず起こりません。
比較的最近のものは同様の配慮がなされているのですが、古いものはほいほいグローバル変数を使っていて、ときおりこうして問題が顕在化します。
それで名前空間をどうするかですが、これは java と同じく、ドメイン名をひっくり返すのが一番よいのではないかと思います。衝突回避という意味ではこれが一番確実で簡単なのではないかと。 javascript の世界ではほとんど普及していない習慣ではあるのですが…
各位ともよろしくお願いします。
Dan the Man with Too Many Widgets to Paste
このブログにコメントするにはログインが必要です。
さんログアウト
この記事には許可ユーザしかコメントができません。