> ... 關鍵在如何用 JavaScript 呼叫 ActiveX?! ... 好樣的 ...
因為好奇看了一下程式碼;沒這麼複雜啦(那是ircom.exe的工作)
XPI內的程式只是可以在Mozilla內使用JavaScript呼叫外部執行檔而已,如果要改成其它的下載軟體,重點的部分只有幾行而已,如下:
(中文註解是我自己加的,因為很多年沒用JavaScript了,而且也從沒熟悉過,所以很可能會有錯)
代碼:
createObject : function(aMethodName, aParams)
{
try {
var filename = this.pref.getCharPref('irvine.edtPath');//從Profile中取得之前由使用者指定的ircom.exe路徑
}
catch(e) {
return false;
}
//alert(filename);
var file = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
var process = Components.classes['@mozilla.org/process/util;1'].getService(Components.interfaces.nsIProcess);
file.initWithPath(filename);//執行檔
process.init(file);
var args = ['-object', 'Irvine.Api', '-method', aMethodName];//呼叫ircom.exe的參數
for(var i in aParams)
args.push(aParams[i]);//其餘的參數——通常就是URL
process.run(false, args, args.length, {});//執行
},
如果只是要修改執行檔名稱與呼叫的參數,似乎不是很難?
另外,OpenIrvine上放的版本比較舊,要看就直接把XPI解開來看吧。
不過卻看不出Firefox不能使用這個extension的原因……而且也有遇到其它使用右鍵選單的extension有類似的問題,例如linky
http://linky.mozdev.org/
我不懂XUL,看有沒有強者出現吧
Edit:
後來發現在FireFox上不能正確執行的原因
可能與語系有關(FAQ裡有提及,雖然詳情不是很懂),因為這個Extension內建的語言是日文,所以在中文版的Firefox會產生錯誤
雖然嘗試摸索著亂改到不會有錯誤訊息出現,但是仍然不能在Firefox中正常運作
--
繼續用Mozilla Suite