【问题标题】:How to make popup.html links open in tab?如何使 popup.html 链接在选项卡中打开?
【发布时间】:2025-12-25 17:00:17
【问题描述】:

我有一个 Chrome 扩展程序,其中包含一些链接。目前,单击链接时什么都不做,我想让它们在单击时在新选项卡中打开。这可能吗?

【问题讨论】:

标签: google-chrome google-chrome-extension


【解决方案1】:

target="_blank" 添加到链接。

另一种方法是将链接打开 javascript 代码附加到链接上的 mousedown 事件。

你也可以使用base标签让所有链接都以target="_blank"打开:

<head>
    <base target="_blank">
</head>

【讨论】:

  • +1。确保在链接中指定 http://(不仅仅是 www.),否则它们将相对于扩展名打开。
  • 好的,事情是我从外部 src 获取 javascript,所以据我所知,我无法编辑它。
  • @user556396 所以你不能编辑html也不能编辑javascript?这是在 iframe 里面还是什么?
  • 没有我用过:
【解决方案2】:

我遇到了同样的问题,这是我的方法:

  1. 创建带有链接的 popup.html(当点击链接时,Chrome 会阻止它们,因此链接不起作用)。
  2. 创建popup.js并在页面链接:&lt;script src="popup.js" &gt;&lt;/script&gt;
  3. 将以下代码添加到popup.js:

    document.addEventListener('DOMContentLoaded', function () {
        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.create({active: true, url: location});
                };
            })();
        }
    });
    

就是这样,之后链接应该可以工作了。

【讨论】:

  • 你忘记在闭包中关闭变量i。此外,chrome.tabs.create 不需要任何权限。
  • 我不需要关闭i,只要ln和location就足够了。您对许可是正确的,修改了我的答案。
【解决方案3】:

Re: 还有其他方法吗

chrome.tabs.create( { url: "http://www.ajaxian.com"} );

http://code.google.com/chrome/extensions/tabs.html

【讨论】:

    最近更新 更多