人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

LightBox,ThicBoxをブログパーツとして使いたいと思っていますが、コンフリクトが気になります。

そこで、貼り付け先となるページで、Prototype.jsやJQuery.jsを使っていた場合、ブログパーツとして後からJQuery.jsを読み込ませたりしたら、そのページ内でコンフリクトを起こして、もとのページ自体でJSエラーを出してしまいそうな気がしています。

それを影響なくする方法はありませんでしょうか?

LigthBox等を使って表示したい内容はFlashなので、htmlページを表示できるようなものであるとありがたいです。

●質問者: dingding
●カテゴリ:インターネット ウェブ制作
✍キーワード:Flash HTML jQuery js Lightbox
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● wizemperor
●27ポイント

jQueryについては、同じライブラリが二重に読み込まれても、問題がないようになっているはずです。

ただ、prototype.jsとjQueryの$関数はコンフリクトします。

その場合、jQueryの$(?)の代わりにjquery(?)を使えば大丈夫です。

ちなみに、prototype.jsを使う場合は、おそらく他のライブラリとコンフリクトするんじゃないかと思います。

◎質問者からの返答

thickboxはJQueryを使っているんですが、これが確かに、prototype.jsとコンフリクトして、困ったことがあり、今回質問させていただきました。

教えていただきました対処をすれば、たとえ、貼り付けた先にprototype.jsやjQueryがあっても、大丈夫だということでしょうか?


2 ● wizemperor
●27ポイント

jQueryにはコンフリクトを避ける関数が用意されているので、これを使います。

http://docs.jquery.com/Core/jQuery.noConflict

jQuery.jsの読み込み後に、

jQuery.noConflict();

と書くだけで、$(?)の代わりにjQuery(?)を使うようになるのでコンフリクトしません。

貼付先にprototype.jsやjQuery.jsがすでにあっても問題ないはずです(実際には少し問題はありますが、今回のようなケースでは気にする必要はない)。


ないはずというのは、貼り付け先のサイトでどのような使い方をされてるかによるからで、おそらく完全にコンフリクトを避けることは無理だと思います。


ThickBox自体が(JSと)CSSを使用して表示していますし、貼り付け先のサイトで高度なCSSの書き方がされていると、これもうまく表示できない可能性が高いです。


その辺りは実際にベータ版として運用しながらフィードバックをもらうか、ライブラリそのものを自分で作らないとだめだと思います。あるいはjQueryから使う部分だけ抜き出して、名前空間、変数名や関数名を全部変えてしまうとか…。

◎質問者からの返答

ありがとうございます。

>jQueryから使う部分だけ抜き出して?

これが必要なのかと思っています


3 ● q_taro4
●26ポイント

自分で試して改良するしかないですね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ