【问题标题】:Open current page URL in new window when click on chrome extension icon单击 chrome 扩展图标时在新窗口中打开当前页面 URL
【发布时间】:2018-04-30 18:02:32
【问题描述】:

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

谁能帮我解决这个问题?

谢谢

【问题讨论】:

  • f.target = '_blank'
  • @wOxxOm:感谢您提供答案。但它不起作用。弹出窗口已打开。
  • 你能显示你的清单文件吗?
  • I want to open current page URL when click on chrome icon. Now show current page URL in popup 是什么意思?你能改写一下吗?
  • @wOxxOm:我的意思是当我点击 chrome 扩展时,当前页面 URL 会打开到新标签。例如。现在我在 google.com 页面,我点击我的扩展图标然后它应该在新标签中打开 goole.com 页面的 URL

标签: javascript html json google-chrome-extension


【解决方案1】:

基于我们在 cmets 中的讨论。将此作为答案发布。

如果您想获取当前标签页的 url 并在新窗口中打开它。在弹出的 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){});
});

这将获取当前标签页的 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    相关资源
    最近更新 更多