2014-06-13 156 views
0

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

我的问题是对port.emit,port.on的误解。

enter image description here

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

你为什么downvoted?你用非常好的图像写了一篇漂亮的文章。 +1 – Noitidart

+0

@Noitidart,请参阅UPD。谢谢。 –

回答

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); 
}) 
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; 
} 
+0

哪里可以插入此代码? main.js或popup.js? –

+0

您可以将此代码放置在面板的'onShow'功能中。 – Noitidart

相关问题