如何在«panel»标题和网址当前页面上显示?
我的问题是对port.emit,port.on。
的误解
UPD:
没有“标题”面板,“标题”当前页面。
main.js
var pa = require("sdk/panel");
var se = require("sdk/self");
// ...
var panel = pa.Panel({
width: 400,
height: 350,
contentURL: [
se.data.url("./popup.html")],
contentScriptFile: [
se.data.url("popup.js"),
se.data.url("./js/jquery-2.1.0.min.js"),
se.data.url("./js/bootstrap.min.js")],
contentStyleFile: [
se.data.url("./css/bootstrap.min.css"),
se.data.url("./css/font-awesome.min.css")],
onHide: handleHide
});
// ...
popup.js
var url_page, title_page; // No document.title or document.location
console.log(url_page);
console.log(title_page);
感谢您的帮助。
答案 0 :(得分:1)
在main.js中:
var pa = require("sdk/panel");
var se = require("sdk/self");
var tabs = require('sdk/tabs');
var panel = pa.Panel({
width: 400,
height: 350,
contentURL: [
se.data.url("./popup.html")],
contentScriptFile: [
se.data.url("popup.js"),
se.data.url("./js/jquery-2.1.0.min.js"),
se.data.url("./js/bootstrap.min.js")],
contentStyleFile: [
se.data.url("./css/bootstrap.min.css"),
se.data.url("./css/font-awesome.min.css")],
onHide: handleHide,
onShow: function() {
this.port.emit('show', {
url: tabs.activeTab.url,
title: tabs.activeTab.title
})
}
});
在popup.js中添加:
self.port.on('show', ({ url, title }) => {
console.log(url);
})
答案 1 :(得分:0)
你可以这样:
const { getMostRecentBrowserWindow } = require('sdk/window/utils');
var aDOMWindow = getMostRecentBrowserWindow();
if (aDOMWindow.gBrowser) {
var url = aDOMWindow.gBrowser.contentDocument.location;
var title = aDOMWindow.gBrowser.contentDocument.title;
} else {
var url = aDOMWindow.document.location;
var title = aDOMWindow.document.title;
}