bookmarklet - 匯出 FireGestures 手勢對應設定
這支 bookmarklet 只是寫好玩的,在 Firefox 的 Chrome URL 執行,就可以在電腦裡存一個文字檔,真是方便(所以最好別讓來路不明的 bookmarklet 做這種事)。
使用步驟:
- 將 bookmarklet 加進書籤 → 匯出 FireGestures 手勢對應
- 在網址列輸入 chrome://firegestures/content/prefs.xul 進入 FireGestures 選項。
- 點選剛剛加入的書籤,就會出現對話框詢問選項:
- 選擇要把文字檔存到哪裡。
- 完成後檔案就存好了。
- 把文字檔拖曳進 Firefox,看看結果。
疑難排解:
只有在 FireGestures 1.1.5 測試,日後作者隨便改點東西我可能就爆了,所以有疑難也不會排解啦。
原始碼拆解:
var FGTreeDumper = { dump: function(){ var fp = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker); var charset = "UTF-8"; var os = Cc["@mozilla.org/intl/converter-output-stream;1"].createInstance(Ci.nsIConverterOutputStream); var fos = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream); fp.init(window, null, fp.modeSave); fp.defaultExtension='txt'; fp.defaultString='FireGesturesTreeDump'; fp.appendFilters(fp.filterText); /* * 1: 忽略未使用項目 * 2: 忽略 type 欄位 * 4: 忽略 flag 欄位 * 8: 忽略「命令」欄位 */ var option = prompt('- 忽略未使用的項目,請選 1\n- 忽略 type 資料,請選 2\n- 忽略 flag 資料(例:firefox3)請選 4\n- 忽略「命令」資料,請選 8\n- 綜合選項,請將各選項數字相加,例如 15\n\n請選擇,或不輸入以使用預設選項:'); if (fp.show() != fp.returnCancel) { if (fp.file.exists()) fp.file.remove(true); fos.init(fp.file, 0x02 | 0x08 | 0x20, 0666, 0); var data = ''; var mappings = gMappingsArray; mappings.forEach(function(item){ if( ! ((option==1||option==3||option==5||option==7||option==9||option==11||option==15) && item[kDirectionCol]=='') ) { var cell = []; item.forEach(function(col,idx){ if( ! ((option==2||option==3||option==6||option==7||option==10||option==11||option==14||option==15) && idx==kTypeCol) && ! ((option==4||option==5||option==6||option==7||option==12||option==13||option==14||option==15) && idx==kFlagsCol) && ! ((option==8||option==9||option==10||option==11||option==12||option==13||option==14||option==15) && idx==kCommandCol) ) { cell.push(col); } }); data += cell.join('\t') + '\n'; } }); os.init(fos, charset, 0, 0x0000); os.writeString(data); os.close(); fos.close(); alert('已完成。'); } } }; FGTreeDumper.dump();
有 0 個意見
☂