获取当前网址

时间:2013-04-21 16:19:11

标签: javascript sdk firefox-addon-sdk

我想在firefox中获取所选标签的当前网址,我有一个针对contentURL的Firefox SDK面板,我一直在使用Javascript来尝试获取当前网址;

window.content.location.href

但遗憾的是,除非我在contentURL页面上显示任何其他页面并且它什么也没显示,否则它不起作用。

谢谢!

2 个答案:

答案 0 :(得分:1)

在JavaScript中:

window.location.href

在php中:

$_SERVER["REQUEST_URI"]

答案 1 :(得分:1)

您可以像这样获取网址

var url = require('sdk/tabs').activeTab.url;

这仅适用于附加代码,而不适用于内容脚本。差异见this guide

如果要从内容脚本触发查找和/或想要在内容脚本中使用URL,则必须communicate using "port"

以下是一个示例,其中单击按钮时,面板中会显示当前选项卡的URL。

lib / main.js(附加代码):

const data = require('sdk/self').data;

var panel = require('sdk/panel').Panel({
    contentURL: data.url('panel.html'),
    contentScriptFile: data.url('panel.js')
});

panel.port.on('get url', function () {
    panel.port.emit('return url', require('sdk/tabs').activeTab.url);
});

panel.show();

data / panel.js(内容脚本):

var button = document.getElementById('button');
var urlspan = document.getElementById('url');

button.addEventListener('click', function () {
    self.port.emit('get url');
});

self.port.on('return url', function (url) {
    urlspan.textContent = url;
});

数据/ panel.html:

<!DOCTYPE html>
<html>
  <head>
        <meta charset="utf-8" />
    <title>panel</title>
  </head>
  <body>
    <button id="button">
      Get Current URL
    </button>
    <br>
    Current URL: <span id="url"></span>
  </body>
</html>