单击chrome扩展图标时,在新窗口中打开当前页面URL

时间:2018-04-30 06:08:04

标签: javascript html json google-chrome-extension

我创建了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>

有人可以帮我解决这个问题吗?

谢谢

1 个答案:

答案 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);