修改巴哈哈拉區白痴連結
巴哈哈啦區有個白痴功能,就是點連結會跳出對話框詢問是否確定,是的話便在新視窗開啟——相當多此一舉而且(亂開窗)很落伍;然後為了做這效果,還把網址改成 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); } }
再看一個原設計的荒謬,就是它會提示「您需要先登入才能觀看喔」可是網址明明就顯示在狀態列,為甚麼不能看呢?為甚麼要掩耳盜鈴呢?
有 0 個意見
☂