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


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

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

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

回答の条件
  • 1人2回まで
  • 登録:2007/09/14 06:58:59
  • 終了:2007/09/21 07:00:29

回答(3件)

id:wizemperor No.1

wizemperor回答回数379ベストアンサー獲得回数522007/09/14 08:18:59

ポイント27pt

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

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

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

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

id:dingding

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

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

2007/09/14 09:18:54
id:wizemperor No.2

wizemperor回答回数379ベストアンサー獲得回数522007/09/14 17:57:03

ポイント27pt

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

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

jQuery.jsの読み込み後に、

jQuery.noConflict();

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

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


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


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


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

id:dingding

ありがとうございます。

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

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

2007/09/15 10:35:18
id:q_taro4 No.3

q_taro4回答回数83ベストアンサー獲得回数12007/09/15 00:08:56

ポイント26pt

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

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません