[問題] 防止javascript互相衝突

看板Ajax作者 (LaPass)時間11年前 (2012/09/24 12:11), 編輯推噓4(4028)
留言32則, 7人參與, 最新討論串1/3 (看更多)
如標題 自己在 javascript方面算新手 因為沒用JS寫出大東西過 現在打算寫個類似google analytics之類的 可以讓別的網站只加上幾行我給他的JS就,可以使用的小功能 在實做方面,我會考慮用jQuery之類的libary,因為比較省工 但是,現在我在擔心一個問題 別人的網站可能也有使用jQuery,甚至是不同版本 我想請問 如何同時「避免自己的js、引用的libary別人網上的js互相衝」 又能夠「讓自己的js、引用的libary,可以在別人的網站上,正常運作」? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.16.65

09/24 12:39, , 1F
全部都寫在同一個nameSpace下面 或是寫成jquery plungin
09/24 12:39, 1F

09/24 12:56, , 2F
請問是像這樣嗎?
09/24 12:56, 2F

09/24 12:57, , 3F
http://ppt.cc/TqLr 那請問我要怎麼引用自己的jquery? 不寫
09/24 12:57, 3F

09/24 12:58, , 4F
成plungin的原因是,我無法確定別人用的版本,以及是否有裝
09/24 12:58, 4F

09/24 12:58, , 5F
jquery?
09/24 12:58, 5F

09/24 12:59, , 6F
是下面 172的那個嗎? 那個我看不太懂 QQ
09/24 12:59, 6F


09/24 13:55, , 8F
下面有介紹jquery plungin的pattern..
09/24 13:55, 8F

09/24 13:56, , 9F
再下面也有namespace的解說..
09/24 13:56, 9F

09/24 13:57, , 10F
關於jQuery版本數不同這就沒辦法了 只能事先宣告適用於幾版
09/24 13:57, 10F

09/24 14:01, , 11F
沒有「把自己引用的jQuery關在自己的框框中自己玩」的方法
09/24 14:01, 11F

09/24 14:01, , 12F
嗎? Q_Q
09/24 14:01, 12F

09/24 18:03, , 13F
requirejs load指定的jquery(cdn), 再jQuery.noConflict
09/24 18:03, 13F

09/24 18:04, , 14F
塞iframe吧
09/24 18:04, 14F

09/24 18:05, , 15F
再用r.js打包,並且在對方的jquery載入前載入你的檔案
09/24 18:05, 15F

09/24 19:10, , 16F
不會沒辦法啊,不要用 $ 這個變數就好了。
09/24 19:10, 16F

09/24 19:10, , 17F
也不要用 jQuery 這個變數,修改一下 jQuery source 就好
09/24 19:10, 17F

09/24 19:41, , 18F
好主意,我晚點試試看 XDDD
09/24 19:41, 18F

09/24 19:44, , 19F
把jquery原始碼複製貼上到自己的原始碼內...
09/24 19:44, 19F

09/24 19:45, , 20F
應該說自己的scope裡 然後把前面幾行的
09/24 19:45, 20F

09/24 19:45, , 21F
_jQuery = window.jQuery _$ = window.$等等改掉
09/24 19:45, 21F

09/24 19:45, , 22F
等等 不用這樣
09/24 19:45, 22F

09/24 19:46, , 23F
直接把最後一行的})( window );改成你的app即可
09/24 19:46, 23F

09/24 19:46, , 24F
反正就是別讓jQuery直接把$,jQuery註冊在window上即可
09/24 19:46, 24F

09/24 19:46, , 25F
然後就能在自己的scope內玩了
09/24 19:46, 25F

09/24 21:41, , 26F
等於把jQuery的core包在你的lib裡面 這樣肥滋滋...
09/24 21:41, 26F

09/24 22:07, , 27F
成功.... 搜尋取代window.$跟window.jQuery後就成功了。
09/24 22:07, 27F

09/24 22:07, , 28F
接下來我看看要怎麼把jQuery UI包進去.... XD
09/24 22:07, 28F

09/25 12:46, , 29F
原Po的意思就是可以使用者用一套jQuery,自己另用一套
09/25 12:46, 29F

09/25 12:46, , 30F
那就不可能不肥滋滋啊...XD
09/25 12:46, 30F

09/25 12:50, , 31F
也還好,才幾十k而已,jQuery UI就很肥..... 200K.....orz
09/25 12:50, 31F

09/26 08:56, , 32F
jquery ui 可以選擇要的下載 一般不會想全下載吧
09/26 08:56, 32F
文章代碼(AID): #1GNzrLIk (Ajax)
文章代碼(AID): #1GNzrLIk (Ajax)