简体   繁体   English

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

[英]Show URL and title of the current page on the «panel»

How to show on the «panel» title and url current page? 如何在“面板”标题和URL当前页面上显示?

My problem is the misunderstanding of port.emit, port.on. 我的问题是对port.emit,port.on的误解。

在此处输入图片说明

UPD: UPD:

No "title" panel, "title" current page. 没有“标题”面板,“标题”当前页面。

main.js 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 popup.js

var url_page, title_page; // No document.title or document.location

console.log(url_page);
console.log(title_page);

Thank you for your help. 谢谢您的帮助。

In main.js: 在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
      })
    }
});

In popup.js add: 在popup.js中添加:

self.port.on('show', ({ url, title }) => {
  console.log(url);
})

You can get it like this: 您可以这样获得:

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;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM