作者HZYSoft (PCMan)
看板Browsers
標題Re: [-Fx-] 新 IE Tab 準備釋出,修正 Win 7下死當
時間Wed Nov 21 19:25:19 2012
剛剛發了最新版本 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
推 rick:HZYSoft真熱心!感恩~! 11/21 19:27
→ rick: 大 <<<<吃字@@ 11/21 19:28
推 len849:為什麼我切換IE都會顯示 需安裝程式才能檢視此內容@@? 11/21 19:45
推 waterpic:給個讚~~我每次開每次當 11/21 20:32
推 willy69wu31:推 那堆低階操作真的是難搞 11/21 22:09
推 AnewMitch:Win7 64bit + IE10 按backsbace會跳回上一頁 11/22 00:03
推 Kreen:推! 11/22 00:27
推 t0042380:推熱心! 11/22 00:35
推 KCKCLIN: 11/22 03:12
推 dfudfut5:話說這個版本跟IE Tab 2 有什麼不一樣?? 11/22 03:15
推 art1:推!!! 11/22 08:28
推 rockmanx52:@dfudfut5:這個是完全不加料的本家正宗 11/22 08:40
推 taco20:推 11/22 17:18
推 Kenqr:推! 11/22 17:57
推 ThisIsNotKFC:推! 11/22 21:48
推 applewarm:推! 11/23 19:00
推 tonyselina:沒用也推 11/25 12:44
推 blackbeard:太專業太熱心了,讚! 11/25 12:54
推 jeremychang:立刻移除IE TAB 2...改裝正版IE TAB 12/23 09:44
推 luvq:讚! thx 03/02 21:34
推 moocow:ietab 2版不只會當掉 還會造成yahoo奇摩無法登入留言 03/07 10:16