5

谷歌浏览器扩展:

我正在为一件简单的事情发疯。请不要怪我,我不是英国人,我无法阅读和理解所有扩展文档。

我只是想做以下事情:

我可以在我的 popop.html 中说 8 个不同的 URL,当我单击右上角浏览器栏中的图标时会打开。
(url) example.com
(url) 其他示例等...

单击一个 url 什么都不做,target="_blank"总是打开一个新选项卡,但我想在单击一个选项卡时在同一个选项卡中打开它们。target="_top"或者target="_self"在这里似乎不起作用。

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

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

提前致谢 RJ

4

4 回答 4

13

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

如果您尝试在当前活动选项卡中打开 url,请尝试以下操作:

将以下脚本附加到您的 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清单文件中添加权限才能使其正常工作。

于 2013-03-06T18:04:17.687 回答
1

虽然这是一个老问题,但我将发布 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});
            };
        })();
    }
于 2018-10-29T11:08:07.353 回答
1

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

于 2021-02-27T17:17:59.320 回答
-1

如果我理解正确,这可能是一个简单的解决方法;

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

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

一个更简单的写法是:

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

希望我有帮助:)

于 2013-03-06T11:11:25.450 回答