Chrome扩展程序:如何在同一选项卡中的popup.html中打开网址

时间:2013-03-06 11:02:29

标签: html google-chrome url manifest

Google Chrome扩展程序:

我生气很简单。请不要责怪我,我不是英国人,我无法阅读和理解所有的扩展文档。

我只想做以下事情:

我可以说我的popop.html中有8个不同的网址,当我点击右上方浏览器栏中的图标时,会打开这个网址。
(url)example.com
(url)其他例子等......

点击网址不执行任何操作,target="_blank"始终会打开一个新标签,但我想在单击其中时在同一个标​​签页中打开它们。 target="_top"target="_self"似乎无法在这里工作。

我不知道如何编程。我来自php,我需要一个快速的解决方案。

是否有人知道(易于理解)代码段或想法如何在同一个标​​签中打开我的网址? (在哪里放置什么) (我理解到目前为止的清单定义,但是对于我来说,所有这些java上下都很难理解,只是为了这个“简单”的任务)。

先谢谢 RJ

4 个答案:

答案 0 :(得分:11)

我相信Chrome不允许弹出窗口以任何方式打开外部页面。我知道的唯一解决方案是在iframe文件中放置popup.htmlsrc属性设置为popup2.html,并将所有html放在popup2.html内。但是,请考虑所有网站在iframe中都不能正常工作。

如果您尝试在当前有效标签中打开网址,请尝试关注:

将以下脚本附加到popup.html文件中:

var hrefs = document.getElementsByTagName("a");

function openLink() {
    var href = this.href;
    chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
        var tab = tabs[0];
        chrome.tabs.update(tab.id, {url: href});
    });
}

for (var i=0,a; a=hrefs[i]; ++i) {
    hrefs[i].addEventListener('click', openLink);
}

您需要在清单文件中添加tabs权限才能生效。

答案 1 :(得分:0)

尽管这是一个老问题,但我将从2018年起发布工作代码。

要在同一窗口中打开来自Chrome扩展程序的锚链接,请将此代码放在popup.js中:

var links = document.getElementsByTagName("a");
    for (var i = 0; i < links.length; i++) {
        (function () {
            var ln = links[i];
            var location = ln.href;
            ln.onclick = function () {
                chrome.tabs.update({active: true, url: location});
            };
        })();
    }

答案 2 :(得分:0)

您只需要使用 chrome.tabs.update({active: true, url: 'yoursite.com'}); 而不是 chrome.windows.create({url:'yoursite.com'});,该位置将在同一个活动标签中打开

答案 3 :(得分:-1)

如果我理解正确,这可能是一个简单的修复;

对于要在同一选项卡中打开的每个链接,请使用以下HTML:

<a href="LINK" target="_self">Link Name</a>

更简单的写作方式是:

<a href="LINK">Link Name</a>

希望我有所帮助:)