我创建了chrome扩展程序。我想在点击chrome图标时打开当前页面URL。现在在弹出窗口中显示当前页面URL。请帮助我在这种情况下我能做些什么。
请在下面找到代码:
document.addEventListener('DOMContentLoaded', function() {
var checkPageButton = document.getElementById('checkPage');
chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
var url = tabs[0].url;
alert(url);
});
checkPageButton.addEventListener('click', function() {
chrome.tabs.getSelected(null, function(tab) {
d = document;
var f = d.createElement('form');
f.action = 'http://gtmetrix.com/analyze.html?bm';
f.method = 'post';
f.target = '_blank';
var i = d.createElement('input');
i.type = 'hidden';
i.name = 'url';
i.value = tab.url;
f.appendChild(i);
d.body.appendChild(f);
f.submit();
});
}, false);
}, false);
<!-- Menifest.json -->
{
"manifest_version": 2,
"name": "Test ",
"description": "",
"version": "1.0",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"activeTab"
]
}
<!-- popup.html -- >
<html>
<head>
<title>GTmetrix Analyzer</title>
<script src="popup.js"></script>
</head>
<body>
<h1>GTmetrix Analyzer</h1>
<button id="checkPage">Check this page now!</button>
</body>
</html>
有人可以帮我解决这个问题吗?
谢谢
答案 0 :(得分:1)
根据我们在评论中的讨论。将此作为答案发布。
如果您想获取当前标签的网址并在新窗口中打开它。在弹出窗口js文件中进行以下更改
替换此代码:
chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
var url = tabs[0].url;
alert(url);
});
使用此代码:
chrome.tabs.query({'active': true, currentWindow: true}, function (tabs) {
var url = tabs[0].url;
chrome.tabs.create({url: url}, function(tab){});
});
这将获取当前标签页并在新的新标签页中将其打开。
此外,您可以删除此代码,不再需要它。
checkPageButton.addEventListener('click', function() {
chrome.tabs.getSelected(null, function(tab) {
d = document;
var f = d.createElement('form');
f.action = 'http://gtmetrix.com/analyze.html?bm';
f.method = 'post';
f.target = '_blank';
var i = d.createElement('input');
i.type = 'hidden';
i.name = 'url';
i.value = tab.url;
f.appendChild(i);
d.body.appendChild(f);
f.submit();
});
}, false);