新しいタブを開き、その中に新しい HTML ドキュメントを作成する方法は? 、などの古い再起動が必要な API を使用することをお勧めしますがComponents.classes
、Components.interfaces
機能する方法であれば問題ありません。
質問する
131 次
1 に答える
0
私のアドオンの 1 つで、次のコードを使用して URL をタブまたはウィンドウで開きます。
/**
* Open a URL in a window or a tab.
*/
function openUrlInWindowOrTab(url, titleText, inWindow, makeTabActive) {
// Default: in tab; tab not activated
if(typeof (url) !== "string" ) {
return;
}//else
// Add/remove a "/" to comment/un-comment the code appropriate for your add-on type.
/* Add-on SDK:
let activeWindow = require('sdk/window/utils').getMostRecentBrowserWindow();
//*/
//* Overlay and bootstrap (from almost any context/scope):
Components.utils.import("resource://gre/modules/Services.jsm"); //Services
let activeWindow = Services.wm.getMostRecentWindow("navigator:browser");
//*/
let gBrowser = activeWindow.gBrowser;
if(inWindow) {
// Set default title
titleText = (typeof titleText === "string") ? titleText : "Opened by [Your add-on]";
//Open a window
return activeWindow.open(url, titleText);
} else {
//Open a tab
let newTab = gBrowser.addTab(url);
if(makeTabActive) {
//Make the tab active
gBrowser.selectedTab = newTab;
}
return newTab;
}
}
上記は Overlay および Bootstrapped アドオンで機能するはずです。また、アドオン SDK のコードのコメントを外し、オーバーレイ/ブートストラップ コード ( activeWindow
. ただし、アドオン SDK の場合は、SDK 固有の API を使用することをお勧めします。
新しいタブで「Hello World」と表示させたい場合は、chrome/content
ディレクトリに HTML ファイルを用意し、適切な URL (例: ) を使用します。これは、アドオンのchrome.manifestの行でchrome://[as defined in your chrome.manifest]/content/helloWorld.html
定義されています。content
于 2016-11-22T10:42:16.137 に答える