Re: [-Fx-] 新 IE Tab 準備釋出,修正 Win 7下死當
剛剛發了最新版本 3.0.20121121
能夠有限度的在 IE Tab 內使用 Firefox 熱鍵!
http://forum.moztw.org/viewtopic.php?f=11&t=38803&p=177687#p177687
傷腦筋的 Firefox,plugin 吃掉熱鍵也是快十年的老問題了,
喊到現在永遠還留在 TODO list 裡面,沒有人去修。
這是很嚴重的 accessibility bug,不過,被逼急了我也是有辦法的。
從 IE Tab plugin 呼叫主程式的 javascript,把 plugin 收到的按鍵,
傳給 Firefox,再由 gBrowser 裡面,找到所有 <key> tag 的
DOM XulElement 元件,然後逐一比對,找到符合的 command,
然後再呼叫 doCommand(),完工!
有限度支援在 firefox plugin 內使用 firefox 熱鍵。
就我所知,在 NPAPI plugin 程式設計裡面,
我還沒看過有人使用這樣的解法來克服。
IE Tab 雖然是個表面上看似簡單的 plugin,
背後其實有很多神秘的 workaround 機制和低階 Windows 操作:
1. 利用 Windows hook,攔截 Firefox 的 message loop,在其中安插動作,並把部份訊
息轉發到 ATL COM 的程式
2. 利用 window subclassing,攔截 IE 最內層視窗訊息
3. 利用傳送假訊息給 Firefox,達成 OOPP 模式下正確切換輸入焦點
4. 利用 NPAPI plugin 和 Javascript 互相呼叫,達成正常套件無法執行的動作
5. 解析 Firefox 主程式的 XUL DOM 架構,抓出視窗上註冊的熱鍵,再和 plugin 皆收
到的鍵盤輸入比對,達成 firefox 熱鍵的部份支援。
這些怪招,各個都是花了很長時間的心血研究,才想出來的妙招。
可惜這年頭寫 NPAPI plugin 的人少了,Firefox 市占率也逐年衰退。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.64.247.1
推
11/21 19:27, , 1F
11/21 19:27, 1F
→
11/21 19:28, , 2F
11/21 19:28, 2F
推
11/21 19:45, , 3F
11/21 19:45, 3F
推
11/21 20:32, , 4F
11/21 20:32, 4F
推
11/21 22:09, , 5F
11/21 22:09, 5F
推
11/22 00:03, , 6F
11/22 00:03, 6F
推
11/22 00:27, , 7F
11/22 00:27, 7F
推
11/22 00:35, , 8F
11/22 00:35, 8F
推
11/22 03:12, , 9F
11/22 03:12, 9F
推
11/22 03:15, , 10F
11/22 03:15, 10F
推
11/22 08:28, , 11F
11/22 08:28, 11F
推
11/22 08:40, , 12F
11/22 08:40, 12F
推
11/22 17:18, , 13F
11/22 17:18, 13F
推
11/22 17:57, , 14F
11/22 17:57, 14F
推
11/22 21:48, , 15F
11/22 21:48, 15F
推
11/23 19:00, , 16F
11/23 19:00, 16F
推
11/25 12:44, , 17F
11/25 12:44, 17F
推
11/25 12:54, , 18F
11/25 12:54, 18F
推
12/23 09:44, , 19F
12/23 09:44, 19F
推
03/02 21:34, , 20F
03/02 21:34, 20F
推
03/07 10:16, , 21F
03/07 10:16, 21F
討論串 (同標題文章)