刪除 about:config 中的偏好設定項目
除了 Mozilla Taiwan 討論區: 如何刪除在 about:config 所建立的資料 提到的方法外,以 bookmarklet 協助刪除也是個選擇。
將 bookmarklet 加進書籤 → about:config 刪除偏好項目
使用步驟:
- 備份 pref.js(保險起見。刪除跟重設不同,砍掉就真的沒救了!)
- 由網址列進入 about:config(在一般網頁不可執行)
- 執行 bookmarklet,會詢問要刪除的分支(分支指的是 nsIPrefBranch),可以輸入:
-
整個分支
例如輸入 browser.startup 會刪除 browser.startup.homepage 等項目。可以將點(.)也輸入而變成 browser.startup.,效果一樣。
註:與 about:config 的篩選條件不同,輸入 browse 或 browser.startup.h 皆無法找到前述項目。 -
單一項目
例如輸入 browser.startup.homepage 就會刪掉 browser.startup.homepage 這個項目。
-
- 出現確認畫面。若項目很多(超過 50 個)會再確認一遍。
- 出現「已執行」訊息。不過我沒有真的檢查是否已刪除,需要重新載入才知道成功與否。
原始碼拆解:
javascript: var v = "", b = null; try { b = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService); } catch(e) { alert("錯誤:無法取得 Firefox 服務。"); } if(b) { while( v == "" ) { v = prompt("請輸入要刪除的擴充套件分支:\n(例如「megaupload.toolbar.」)",""); } if( v != null ) { var str = "" ; var dot = (v.substr(-1)=="."); var count = 0; b = b.getBranch(v); b.getChildList("",{}).forEach(function(i) { if( dot || i[0]=="." || i=="" ) { str += ( "\t" + v + i + "\n" ); count++; } }); if(count==0) {alert("沒有符合的項目。");} else if( confirm(count+" 個項目將被刪除:\n" + str + "\n") ) { if( count<=50 || confirm("(項目超過 50 個)確定要刪除嗎?") ) { b.deleteBranch(""); alert("已執行。"); } } } } void 1
有 0 個意見
☂