作者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
1F:推 rick:HZYSoft真热心!感恩~! 11/21 19:27
2F:→ rick: 大 <<<<吃字@@ 11/21 19:28
3F:推 len849:为什麽我切换IE都会显示 需安装程式才能检视此内容@@? 11/21 19:45
4F:推 waterpic:给个赞~~我每次开每次当 11/21 20:32
5F:推 willy69wu31:推 那堆低阶操作真的是难搞 11/21 22:09
6F:推 AnewMitch:Win7 64bit + IE10 按backsbace会跳回上一页 11/22 00:03
7F:推 Kreen:推! 11/22 00:27
8F:推 t0042380:推热心! 11/22 00:35
9F:推 KCKCLIN: 11/22 03:12
10F:推 dfudfut5:话说这个版本跟IE Tab 2 有什麽不一样?? 11/22 03:15
11F:推 art1:推!!! 11/22 08:28
12F:推 rockmanx52:@dfudfut5:这个是完全不加料的本家正宗 11/22 08:40
13F:推 taco20:推 11/22 17:18
14F:推 Kenqr:推! 11/22 17:57
15F:推 ThisIsNotKFC:推! 11/22 21:48
16F:推 applewarm:推! 11/23 19:00
17F:推 tonyselina:没用也推 11/25 12:44
18F:推 blackbeard:太专业太热心了,赞! 11/25 12:54
19F:推 jeremychang:立刻移除IE TAB 2...改装正版IE TAB 12/23 09:44
20F:推 luvq:赞! thx 03/02 21:34
21F:推 moocow:ietab 2版不只会当掉 还会造成yahoo奇摩无法登入留言 03/07 10:16