Chrome扩展程序; 在新标签页中打开popup.html的链接

Adv*_*cer 41 google-chrome google-chrome-extension

我在做一个Chrome扩展和我在这个岗位帮助这里.

我现在的问题是如何打开一个新的chrome选项卡,其中包含我在其中单击的链接作为URL popup.html.我尝试像他们在其他类似问题中的建议一样做,例如设置<a>属性target,_blank但唯一的结果是chrome确实打开了一个新标签,但在新标签中是我的popup.html.

不知道怎么解决这个问题?

谢谢.

Kon*_*nel 63

您应该使用chrome.tabs模块在新选项卡中手动打开所需的链接.尝试在popup.html中使用此jQuery代码段:

$(document).ready(function(){
   $('body').on('click', 'a', function(){
     chrome.tabs.create({url: $(this).attr('href')});
     return false;
   });
});
Run Code Online (Sandbox Code Playgroud)


las*_*tha 38

请参阅我的评论/sf/answers/1241282661/


我有同样的问题,这是我的方法:

  1. 使用链接创建popup.html(当Chrome阻止它们时点击链接不起作用).
  2. 创建popup.js并将其链接到页面中: <script src="popup.js" ></script>
  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});
                };
            })();
        }
    });
    
    Run Code Online (Sandbox Code Playgroud)

就是这样,链接应该在那之后起作用.


小智 21

如果您不想使用JQuery,请将其插入到popup.js中,它会在单击时在新选项卡中打开所有链接

请记住在manifest.json中声明"tabs"权限

window.addEventListener('click',function(e){
  if(e.target.href!==undefined){
    chrome.tabs.create({url:e.target.href})
  }
})
Run Code Online (Sandbox Code Playgroud)


rog*_*ack 8

其他答案有效.为了完整性,另一种方法是添加 target="_blank"

或者,如果您想"手动"添加特定链接,这里有一种方式(基于此处已有的其他答案):

popup.html

<a id="index_link">My text</a>.
Run Code Online (Sandbox Code Playgroud)

popup.js

document.addEventListener('DOMContentLoaded', function() {
   var y = document.getElementById("index_link");
   y.addEventListener("click", openIndex);
}

function openIndex() {
 chrome.tabs.create({active: true, url: "http://my_url"});
}
Run Code Online (Sandbox Code Playgroud)

  • 哇这需要更多关注.. :) (3认同)
  • 可以确认 `target="_blank"` 在 Firefox(版本 72)和 Chrome(版本 79)上的行为符合预期。 (2认同)