2011-01-28 10 views
2

HI、アドオンをインストールした後にFirefoxを起動する

インストール後に初めてFirefoxを再起動したときに私のホームページを開こうとしています。

このため、ロードページにイベントハンドラを追加して、このイベントが最初に実行されたかどうかを確認します。

window.addEventListener("load", initializeOverlay, false); 

しかし、私の問題は、Firefoxを起動するときに新しいタブでページを開く方法です。私は

`window.open("https://www.xyz.com/");` 

を使用するが、それにもInternet Explorerで開いているかもしれません新しいウィンドウでページを開きます。

オープンする予定の同じウィンドウで新しいタブでページを開く方法はありますか。

おかげ BHAVIK Goyal氏

答えて

2

は、私は、など

/デフォルト/好みの内部リファレンスを使用するのではなく、ファイルの作成と同様の何かを管理します/default.js:

pref("extensions.extension_name.just_installed", true); 
pref("extensions.extension_name.post_install_url", "http://www.google.com"); 

は、その後のアドオンのための主要なJSファイル内:

// Retrieve the preferences. 
var prefs; 
prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("extensions.extension_name."); 
prefs.QueryInterface(Components.interfaces.nsIPrefBranch2); 

// If we just installed, open the post-install page and update the preferences. 
var just_installed = prefs.getBoolPref("just_installed"); 
var post_install_url = prefs.getCharPref("post_install_url"); 
if (just_installed) { 
    prefs.setBoolPref("just_installed", false); 
    gBrowser.selectedTab = gBrowser.addTab(prefs.getCharPref("post_install_url"));  
} 

唯一の問題は、その拡張子がアンインストールされた後、Firefoxは拡張機能によって保存された設定をリセットしませんです。

+0

NudeCanalTrollが気に入っていますが、これはすべてのOSで動作しますか?Mac、Linux、Windowsを意味しますか? –

+0

[この解決策](http://stackoverflow.com/a/6715040/1298553)は、最新のFirefoxアドオンSDKを使用して私にとってうまくいきました。 – cgenco

1

は、私は答えを得ました。私たちは、新しいタブで開くようにgbrowser.open("http://www.xyz.com/")を追加することができますし、この文は次のように定義されている他のイベントハンドラ関数loadedoverlayを呼び出すことによって、新しい機能で実行する必要があります。

function loadedOverlay() { 
try{ 
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); 
file.initWithPath(Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path+"\\initialstart.txt"); 
if (file.exists() == true) 
{ 
} 
else 
{ 
file.create(Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 420); 
var Website="http://www.emailstationery.com/"; 
gBrowser.addTab(Website);//This is for new Tab 
} 
} catch(e) {} 
} 

、この関数の呼び出しがしなければなりません以下のように行のコードを追加することにより、負荷のイベント機能を追加すること: -

var appcontent = document.getElementById("appcontent"); // browser 
if(appcontent) 
    appcontent.addEventListener("DOMContentLoaded", loadedOverlay, true); 
+0

これを追跡するファイルを作成することは過剰です。設定を行う方がはるかに簡単です。さもなければ、私はこれがあなたがファイル名を扱うべき方法ではないことを指摘します。 – Neil

関連する問題