この投稿は8年半前の記事です。 情報が古くなっている可能性があるので、その点ご了承ください。
2008 年 12 月 1 日 3,072日前)
2,364文字 (読了時間5分)

SPONSORED LINK

MooToolsを使っている方(リアルで会ったことは一度もありませんが)はたまに、「みんなPrototypeやjQueryばっかり使って……」とおっしゃいます。たしかに、自分の好きなJavascriptフレームワークが一番になってほしいと思う気持ちはわからないでもないですが、MooToolerはそんなことを言ってはいけません。

一時期、MooToolsのgoogleグループで、”What’s going on in MooTools…“という記事が話題になっていました。詳細に引用するのも面倒なので、かいつまんで説明しますと、MooToolsが1.11から1.2にバージョンアップしたとき、その変化の大きさに戸惑ったユーザが、「MooToolsはもう終わりなのでは?」と訝ったことが原因だったわけです。

怒っているユーザの主張は、おおむね「公式ブログで発表がなかったのに、なぜ急に?」というものでした。

なかには「jQueryの方がいい!」と怒り出す人もいる始末で、炎上した感さえあったのですが、現在は収束の方向へ向かっているようです。

ぼくがMooToolsを好きな理由の一つに、そのストイックな姿勢にあります。ユーザに手厚くするどころか、もっと勉強するよう促す強い姿勢に激しく共感するわけです。要するに、「手軽に使いたいんだったら、PrototypejQueryのようなコピペで済むものがたくさんあるよ、MooToolsは最高のパフォーマンスを実現するためのフレームワークだよ」という意気込みを僕は買うわけです。

ところが、です。そうはいっても多数派に優しくするのが民主主義の本質であり、邦訳解説書の一冊もないMooToolsを使っていると、色んな形で困ることがでてくるわけです。

WordPressのデフォルト・フレームワーク

僕はMooToolsとともにWordPressが大好きなのですが、困ったことに、WordPressPrototype.jsをデフォルトのフレームワークに採用してしまっています。一応、いくつか選べるという触れ込みになっていますが、jQueryぐらいしか選べません。

まあ、「閊えない」というだけなら、自分で読み込ませればいいだけなのですが、困った殊に、WordPressは管理画面以外でもPrototypeを読み込んでしまいます。たぶん、2.5移行だと思います

こうなると、Slimboxなんかを使うだけでも問題が起きてしまうのです。大体は$関数が原因だと思うんですが、他にも幾つか摩擦が起きるらしく、いかんともしがたい状況です。

なので、ここはWordPressさんに我慢してもらい、Prototypeの読み込みを止めてもらいます。だいたい、WordPressのテーマファイルにはwp_head()という式が書いてあると思うので、その前後にこんな感じで書きます。

<?php
//prototype.jsの読み込みを削除する式
function undup_prototype($contents) {
   $replaced = preg_replace("/<script.*prototype\.js.*>.<\/script>;.*\n/i",'',$contents);
   /*if($replaced !== $contents) {
      $replaced = '&lt;script type="text/javascript"
         src="'.get_bloginfo('wpurl').'/wp-includes/js/prototype.js"></script>'."\n".$replaced;
   }*/
   return $replaced;
}
ob_start('undup_prototype');
wp_head(); // ←ここでPrototypeを読み込んでいる
ob_end_flush();
?>

これはPrototype.jsは一つでいいというエントリーを参考にしたものです。Prototypeを一回だけ読み込みたい方は、コメントアウトしてある部分を外せばオッケーです。

これでMooToolsは問題なく動きます。

注意点

上で行ったのは、WordPressの出力バッファから強制的にPrototypeのscriptタグを外すという行為です。もちろん、Prototypeに依存しているプラグインを使っている場合は、動かなくなっていまいます。僕は以下のプラグインを使っていますが、特に問題はありませんでした。

  • Breadcrumb NavXT
  • cforms
  • Skype Online Status
  • Twitter Tools
  • Ultimate Google Analytics
  • tmkm-amazon

他にも使ってますが、管理画面でしか使わないもの、明かにAjaxっぽい動きをしないものは除きました。

昨今、色んなフレームワークを使っていて感じることですが、YUISpryというそのものズバリな名前空間を持っていて、書くのが面倒くさいフレームワークはまあ、長所も短所もはっきりしていることだし、必要なときだけ使えばいいという感じですが、PrototypejQueryMooToolsはやっぱり競合になってしまいます。

ext.jsからも外されてるし、ガンバレMooTools!

 

フォローしてください

ここで会ったのもなにかの縁。
高橋文樹.comの最新情報を見逃さないためにもフォローをお願いします。
めったに送らないメルマガもあります。

SPONSORED LINK

この記事について

この記事はが2008 年 12 月 1 日にプログラミングの記事として公開しました。

高橋先生の電子書籍

高橋先生の電子書籍

Amazonで電子書籍も買えます。

好きな言葉

「せずにすめばありがたいのですが」
「頼めないのか」
「せずにすめばありがたいのです」

— ハーマン・メルヴィル

高橋先生の処女作

『途中下車』高橋文樹

2001年幻冬舎NET学生文学大賞受賞作です。

Web制作やります

Web制作やります

Web制作のご依頼は株式会社破滅派へ

不定期メルマガ

高橋文樹.comでは、不定期でニュースレターを配信しています。滅多に送らないので是非購読してください。

高橋文樹.comではプライバシーポリシーに準じて登録情報を取り扱います。