【问题标题】:When click name in popup open link in new tab?在新选项卡中单击弹出打开链接中的名称时?
【发布时间】:2020-05-02 18:38:16
【问题描述】:

我有一个 chrome 扩展程序,可以在弹出窗口中获取来自 Facebook 的好友请求。我已收到弹出窗口中的所有好友请求。当我点击好友请求的名字时,我想在新标签中打开他/她的个人资料。我有他们个人资料的所有链接。我将它们保存在 localStorage 中并在弹出窗口中获取它们。但是当我点击名字时,它并没有打开他/她的个人资料。有人可以帮我打开他们的个人资料吗?

这是我的代码:



//content.js


let value  = $('.bl').html();
chrome.storage.local.set({friends:  value}, function() {

}); 

let lengths = $('.bl').children();
let num = lengths.length;
console.log(num);
chrome.storage.local.set({leng: num});


$(".bl a.bo").each(function( index ) {
    let hrefs = $( this ).attr('href');
    chrome.storage.local.set({link: hrefs});
    console.log(hrefs)
  });




//popup.js
chrome.storage.local.get(['friends','leng','link'],function(result) {
   $(".ul_list").html(result.friends);
   $('.userNum').html(result.leng);

   $('a.bo').attr('onclick',"window.open(result.link)");
  });

  chrome.storage.onChanged.addListener(changes => {
   if (changes.friends) {

   }
});



【问题讨论】:

  • 你为什么要改变它的属性?您可以在哪里使用它,例如$('a.bo').click(() => {window.open(result.link, "", "width=200,height=100")})

标签: javascript jquery google-chrome-extension


【解决方案1】:

如果您检查弹出窗口的开发工具控制台,您可能会看到有关内联 JavaScript 代码被阻止的错误。弹出窗口是一个单独的窗口,因此它有自己的开发工具,您可以通过在弹出窗口中右键单击以显示上下文菜单来打开它,然后单击菜单中的“检查”。

解决方法是添加target=_blank属性。
$('a.bo').attr('onclick',"window.open(result.link)"); 替换为:

$('a.bo').attr({href: result.link, target: '_blank'});

【讨论】:

    【解决方案2】:

    在 Chrome 扩展环境中以编程方式打开一个新标签,您必须使用 chrome.tabs.create 方法。

    
    const url = "http://www.some-web-site.com";
    
    chrome.tabs.create({ url });
    
    
    

    【讨论】:

      猜你喜欢
      • 2022-07-30
      • 1970-01-01
      • 1970-01-01
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 2013-12-14
      • 1970-01-01
      • 2014-02-23
      相关资源
      最近更新 更多