沒穿方服

索引

顯示╱隱藏內文

心一橫把 Prototype 拆掉換成 jQuery。 前輩,別了!

轉職後裝的裝備也不一樣:
prototype 1.6.0.3 jQuery 1.3.2 感覺到
燈箱 Lightbox 2 jQuery lightBox plugin esc 鍵有問題要自改
音效 Javascript Sound Kit flashSound
餅乾罐 Cookie Jar jquery.cookie.js
jquery.json.js
jQuery cookieJar
好,不過分好多檔
螢光筆 SyntaxHighlighter 1.5.1 同左(這套跟 lib 無關) PayPal 沒錢不能用 2.0
bg 動畫 script.aculo.us jquery.backgroundPosition 好,解放不少空間

也順便試試一直很好奇的 最新回應 2.0 by LVCHEN,果然超級容易安裝(而且還很好玩~)玩著玩著還把它抓回來、改無關緊要的地方(例如 <a> 換成 <input>)……下次升級我就麻煩啦。

上傳新範本時遇到的 bX-928o1o 錯誤,狀況如下:

  1. 小裝置即將刪除:

    列出的小裝置就是需要檢查的

  2. 很抱歉:

    bX-928o1o

搜尋一下會找到解答,把 <b:widget id='XX1' 裡的數字改正即可。

具體作法是參考舊的範本(就是管理介面「修改 HTML」那個),裡面有類似 <b:widget id='Feed1' 這樣的東西,但要上傳的範本裡可能是 <b:widget id='Feed4',兩邊 1 跟 4 沒對上就會出問題。

所以請修改要上傳的範本,把 widget id 改成跟舊的一樣即可。像前面例子就是要改成 Feed1

※ 把 widget 砍光再新增,id 好像就會重排的樣子,這樣改舊的 widget 來適應新範本應該也可行。

巴哈哈啦區有個白痴功能,就是點連結會跳出對話框詢問是否確定,是的話便在新視窗開啟——相當多此一舉而且(亂開窗)很落伍;然後為了做這效果,還把網址改成 javascript:confirmLink('http://……') 造成按中鍵也不能在新分頁開鏈結(會開分頁,但內容錯誤)……我點過好幾次,點一次怒一次。

其實在我怒滿之前,已經有人提供解法了:願意裝 Greasemonkey 的話請參考 Goston’s Blog » [FF] 續 - 讓巴哈姆特哈拉區的連結不再以新視窗開啟

不過我沒裝 Greasemonkey 所以繼續集氣…… 結果、最後就寫了 bookmarklet 來做一樣的事:

將 bookmarklet 加入書籤 → 治療巴哈白痴連結(confirmLink)

又發現巴哈插入影片(YouTube 等)的鏈結網址是 http://www.youtube.com/v/……,連過去是全畫面的 .swf 我用不到。所以順便加上把網址變為 http://www.youtube.com/watch?v=…… 的功能,連到影片在 YouTube 的原始網址:

將 bookmarklet 加入書籤 → 治療巴哈白痴連結(兩種功能)

※第二支有副作用,會讓顯示影片的功能爆掉,因為巴哈會用 JavaScript 取鏈結網址來插入 flash。不過反正我的 Stop Autoplay 把全站 flash 都擋掉了所以我也懶得理哩。


原始碼拆開如下:

var links = document.links;
for(var i = 0; i < links.length; i++) {

  var url = links[i].getAttribute('href');

  if (/^javascript:confirmLink/.test(url)) {
    var r = url.replace( /^javascript:confirmLink\(\'(.+)\'\)/i, "$1");
    r = decodeURIComponent(r);
    links[i].setAttribute('href', r);
  }
  else if (/www.youtube.com/.test(url)) {
    var r = url.replace('http://www.youtube.com/v/', 'http://www.youtube.com/watch?v=');
    links[i].setAttribute('href', r);
  }

}

再看一個原設計的荒謬,就是它會提示「您需要先登入才能觀看喔」可是網址明明就顯示在狀態列,為甚麼不能看呢?為甚麼要掩耳盜鈴呢?

圖片的話,點中鍵就可以看了

輸出文字時使用 nl2brURL Helper 裡的 auto_link,例如 nl2br(auto_link($text));
會造成 JavaScript 的 syntax error:

else document.write(unescape(l[i]));}<br />\n

原因是 auto_link 會用 URL Helper 的 safe_mailto 來替換 mailto 鏈結,插入一段 JavaScript,然後裡面有一個換行符號 \n 會被換成 <br /> 找麻煩。

解決方法是 auto_link(nl2br($text)); 順序倒過來即可……

CI 1.7.1 原裝的 auto_link 沒有選項把 safe_mailto 換成 mailto。

下面是附加元件 Noise 的使用例。套用 ACQUIRE 遊戲的音效,算是湊個 theme 吧。
※播放中覺得吵是正常的,因為真的有點吵……

YouTube - Firefox 聲音主題 - ACQUIRE Noise (add-on: Noise)

這份設定檔也放在 noise_theme_acquire_rdf.7z (DivShare)——僅 RDF,不分享聲音檔。