
Firefox 套件 Noise 今天終於過了 AMO 的審核,主要瑕疵是全域變數沒藏好,白白拖延不少時間。
- 2008-10-20 送審,2009-03-27 被退 —— 等了 5 個月。
- 2009-03-29 修正並發新版,2009-04-07 第二次送審,2009-06-11 批准公開 —— 等了 2 個月。
給也在排隊的朋友參考:其間作者只在 AMO 放新版、修改審核註解(昨天又改了一次,也許是關鍵?)此外就什麼也沒做了。
※想瞭解要審核哪些項目,可參考 AMO blog 的 Successfully Getting your Addon Reviewed。
順便介紹此套件用途:
- 安裝後,預設有 20 幾個事件可以改音效(需要 .wav 檔),例如:
- 尋找已達頁尾/頁首 - 尋找(Ctrl + F)到底的時候叫一聲
- 提示通知 - 下載完成、找到新元件等,右下角跳出通知的時候叫一聲
- 瀏覽開始 - 大致上每點一個鏈結就嗶一下的噪音
- 啟動視窗就緒 - Firefox 啟動還真慢,開好叫我
- 如果預設的不夠,就比較麻煩了,請見 事件參考 表格,手動加入需要的項目,例如:
- 資訊列通知 - 記住密碼、擋彈出廣告之類的通知,出現時叫一聲
- 複製 - 複製的時候叫一聲,可以幫助鑑別按到了 Ctrl + C 還是 Ctrl + V
- 如果是進階使用者,還可試試 事件過濾 功能,在偵測事件之餘,繼續檢驗是否滿足自訂條件,是的話才發聲。甚至用此功能捕捉特定事件,然後做你想做的事;
例如設定dblclick&event.button=='2'&&!gFindBar.hidden&&(gFindBar.close()||true)
會在連按兩下右鍵之後,把尋找列關掉。
總之這個套件不是只有「重現 ie 點鏈結答答聲」用的啦,我還覺得那個跟滑鼠滾輪喀喀喀一樣煩人勒。
最近有些 blogger 管理者把留言表單拿掉了,換成彈出視窗,或整頁模式。
這支 bookmarklet 會試著把表單塞回網頁:
→ 自助嵌入 blogger 留言表單
用了沒反應,蛤~怎會這樣?
1)僅在「單篇文章」頁面有用。 2)因各人模板不同,也可能沒效。 3)只支援 Firefox、Google Chrome、Opera 和 Safari 等。
原始碼拆開如下:
- var cmt_div = document.getElementById("comments");
- var url, anchor, a = cmt_div.getElementsByTagName("a");
- for( i = 0 ; i < a.length ; i++ ) {
- if( a[i].hasAttribute("href") && a[i].getAttribute("href").match(/g\?blogID=([0-9]+)\&postID=([0-9]+)/) ) {
- url = 'http://www.blogger.com/comment-iframe.g?blogID=' + RegExp.$1 + '&postID=' + RegExp.$2;
- anchor = a[i];
- }
- }
- cmt_iframe = document.createElement("object");
- cmt_iframe.setAttribute('data', url);
- cmt_iframe.setAttribute('style', 'display:block; width:100%; height:250px; color:#000; background-color:#f4f1f4; opacity:0.95; padding:0 4px; margin:2px 0; border:2px solid #fff;');
- anchor.parentNode.insertBefore( cmt_iframe, anchor.nextSibling );
- window.scrollTo( cmt_div.offsetLeft, cmt_div.offsetTop );
var cmt_div = document.getElementById("comments"); var url, anchor, a = cmt_div.getElementsByTagName("a"); for( i = 0 ; i < a.length ; i++ ) { if( a[i].hasAttribute("href") && a[i].getAttribute("href").match(/g\?blogID=([0-9]+)\&postID=([0-9]+)/) ) { url = 'http://www.blogger.com/comment-iframe.g?blogID=' + RegExp.$1 + '&postID=' + RegExp.$2; anchor = a[i]; } } cmt_iframe = document.createElement("object"); cmt_iframe.setAttribute('data', url); cmt_iframe.setAttribute('style', 'display:block; width:100%; height:250px; color:#000; background-color:#f4f1f4; opacity:0.95; padding:0 4px; margin:2px 0; border:2px solid #fff;'); anchor.parentNode.insertBefore( cmt_iframe, anchor.nextSibling ); window.scrollTo( cmt_div.offsetLeft, cmt_div.offsetTop );