我正在寻找在 Firefox 中获取所选选项卡的当前 url,我有一个针对 contentURL 的 Firefox SDK 面板,并且我一直在使用 Javascript 来尝试获取当前 url;
window.content.location.href
但不幸的是,除非我在我的 contentURL 页面上的任何其他页面上并且它什么都不显示,否则它不起作用。
谢谢!
我正在寻找在 Firefox 中获取所选选项卡的当前 url,我有一个针对 contentURL 的 Firefox SDK 面板,并且我一直在使用 Javascript 来尝试获取当前 url;
window.content.location.href
但不幸的是,除非我在我的 contentURL 页面上的任何其他页面上并且它什么都不显示,否则它不起作用。
谢谢!
在 JavaScript 中:
window.location.href
在 php 中:
$_SERVER["REQUEST_URI"]
你可以得到这样的网址
var url = require('sdk/tabs').activeTab.url;
这仅适用于您的附加代码,而不适用于内容脚本。有关差异,请参阅本指南。
如果您想从内容脚本触发查找和/或想在内容脚本中使用 URL,则必须使用 "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>