作者HZYSoft (PCMan 知識+)
看板Browsers
標題Re: [-Fx-] PCMan-plugin for Firefox 20080627版
時間Mon Jun 30 22:55:51 2008
: → neopro:svn/cvs 等整理好有空在階段性的放上去; 但還是先補上code 06/28 20:50
: ※ 編輯: neopro 來自: 203.187.100.39 (06/28 21:05)
: → neopro:加上滑鼠功能會讓code變複雜不少, 因為原先hzysoft前輩設計 06/28 21:18
: → neopro:的plugin核心其實相當的簡潔乾淨 所以我是覺得最好是盡可能 06/28 21:19
: → neopro:的保持啦..不過我還是會盡力試看看囉 06/28 21:26
: → neopro:給樓上, 不好意思該部分的確是還沒實作喔. 06/29 18:22
: → neopro:To shyangs 我的想法是,直接從plug-in拉出 Scriptable介面 06/29 18:23
: → neopro:(諸如sendString(), getSelectedText()..等),這些瑣碎的小 06/29 18:23
: → neopro:功能應該是要由 Extension方面來完成,而不是把大大小小所有 06/29 18:23
: → neopro:功能全部寫死在plug-in裡面. 不過我對Fx Extension/html/ 06/29 18:25
: → neopro:javaScript完全不熟.不清楚可行性如何. 06/29 18:25
: → neopro:滑鼠觸控我已經參考了qterm的作法,不過這個寫起來需要時間 06/30 19:00
感謝你的改版
1. 我非常贊成你 scriptable 介面的想法,原先我也是這樣想
所以,pcman plugin 裡面本來就已經寫好,暗藏 scriptable 支援了
可惜後來沒有時間繼續維護,把它完成。
字型、防閒置...等等,也早就都可以用 javascript 呼叫去更改 (密技)
改這部份需要同時改 idl 檔和 C++ 程式,然後重新編譯,讓他產生新的
xpt 檔案。 這部份 XPCOM 的技術非常複雜,說實話,我也沒有全部搞懂
在 IE Tab 裡面,我們也是使用了大量的這種技巧。
透過這樣的方式,extension 和 plugin 可以做非常完美的結合。
而且擴充性會極強。 有興趣你可以參考 IE Tab 的程式碼。
2. 對 extension 不熟沒關係,我也不熟,你可以到 moztw 的討論區徵人
那邊 extension 高手很多,只是沒什麼人在研究 plugin
如果你能搞懂複雜的 plugin,去那邊就可以找到 javascript 的高手合作
3. 滑鼠操作在 Linux 版本的 PCManX gtk+2 是有內建的,程式架構接近 pcman plugin
(因為都是源自 wx 版 PCManX ),你可以直接複製貼上過來,不用自己重寫
4. 搜尋引擎支援在 pcman 2007 有內建,要移植過來當然是很簡單,不過...
我會更建議透過 scriptable 的方式,讓 extension part 用 javascript
去存取 firefox 裡面的搜尋引擎,用 Firefox 原生的支援,這樣會更好。
技術上絕對可行,不過實做起來很有挑戰性,得先搞懂 XPCOM 技術,
然後找到夠強的 extension 開發者合作。
--
個人網頁:
http://pcman.sayya.org/ 上面有自畫像及各種聯絡資訊
Blog:
http://pcman.sayya.org/blog.php?id=pcman
PCMan 全系列 BBS 連線軟體
http://pcman.ptt.cc/ http://pcmanx.csie.net/
新酷音輸入法 for Windows
http://chewing.csie.net/
IE Tab Firefox plugin/extension
http://ietab.mozdev.org/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.231.49.53
推 neopro:其實extension化最麻煩的地方還是在於 DOM embedded object 06/30 23:30
→ neopro:先天上的限制. 例如今天我要在 extension side實作"熱鍵送 06/30 23:30
→ neopro:出常用字串"功能; 這時會出現一個問題,當我焦點focus在em- 06/30 23:31
→ neopro:bed物件主體上時 extension side 的EventListener會被奪走 06/30 23:32
推 neopro:控制權! 執行extension side指令一定得focus在html body上! 06/30 23:37
→ neopro:雖然不影響正常功能,但會嚴重影響user的操作感受 很彆扭 06/30 23:54
→ HZYSoft:我記得 pcman plugin 有提供 set_focus method 07/01 01:06
→ HZYSoft:你可以先搶走 focus,再還回來... 07/01 01:07
→ HZYSoft:另一個很髒的方法,把 plugin 鍵盤事件,redirect 給 07/01 01:07
→ HZYSoft:html object。我在 IE Tab 有做這件事情 :P 07/01 01:07
→ HZYSoft:總之,這部份要用一些比較低階,很髒的方法來弄 07/01 01:07
→ HZYSoft:在這部份 Firefox 大失敗... 可以說完全沒有考量到 07/01 01:08