2013年2月6日 星期三

如何讓 jQuery 跟 prototype 共存


最好的辦法就是拋棄 prototype,不要共存。

今天本來在研究圖片驗證 phpcapcha 外掛。它有兩種方式,一種是傳統的以 post 方式送出表單後驗證,這種方式如果驗證沒過,使用轉址的方式回到上一頁,使用者輸入的資料會全部不見,整張表單要另外填。另一種方式是使用 ajax,可以在頁面不重整的情況下做圖片驗證。

phpcapcha 有提供範例,傳統 post 方式是沒問題,但它的 ajax 方式是使用 prototype ,跟其它引用的 jquery 相衝。查了一陣子之後才發現,原來不管有沒有用 ajax,phpcapcha 都是使用 $_SESSION 變數!當初只在 ajax 範例裡看到 session  字眼,在傳統的 post 方式裡沒有。後來在頁面一開頭就把 $_SESSION 叫出來看,這才發現,什麼都還沒打的時候, phpcapcha 就已經把驗證碼存到 $_SESSION 變數裡面了。

因為要用 ajax 方式做圖片驗證,但它的範例是用 prototype,還在想說怎麼讓 jquery 跟 prototype 共存。不過既然都是用 session 變數,那自己把傳統 post 方式改成 ajax 形式就可以了。

網路上查到的幾種共存方式,試過之後都還是很不方便。尤其現在 jquery 的外掛越來越多,如果使用了 prototype ,當我引用 jquery外掛時,還要去把 jquery 程式碼的 $ 取代成 $j,或是取代成 jQuery,太麻煩。所以最好的方式就是拋棄 prototype。

不死心還是要共存的話,可以參考這篇:如何让 jQuery 和 prototype 共存 (http://www.worldhello.net)

沒有留言:

張貼留言