Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在«上显示当前页面的URL和标题;面板»;_Javascript_Firefox_Firefox Addon_Firefox Addon Sdk - Fatal编程技术网

Javascript 在«上显示当前页面的URL和标题;面板»;

Javascript 在«上显示当前页面的URL和标题;面板»;,javascript,firefox,firefox-addon,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,如何在«面板»标题和url当前页面上显示 我的问题是对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: [

如何在«面板»标题和url当前页面上显示

我的问题是对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);

谢谢您的帮助。

您可以这样得到:

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;
}
在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@Noitidart,请参阅UPD。谢谢。在哪里可以插入此代码?main.js或popup.js?您可以将此代码放在面板的
onShow
功能中。