javascript - 如何在下面的同一选项卡中打开来自 Google Chrome 扩展程序弹出窗口的链接?

标签 javascript google-chrome google-chrome-extension

我希望链接显示在下面的选项卡中,从而使弹出窗口消失。

目前有这个:

//Open links in tab from popup
if (document.location.search == '?popup')
$('a').attr('target', '_blank');

但是 _blanks 在新选项卡中打开。任何帮助将不胜感激 - 谢谢!

最佳答案

您需要先通过以下方式获取当前选定的选项卡, http://code.google.com/chrome/extensions/tabs.html#method-getSelected

然后你使用 tab.id,回调已经触发,并用 url 更新它: http://code.google.com/chrome/extensions/tabs.html#method-update

例如:

chrome.tabs.getSelected({}, function(tab) {
  chrome.tabs.update(tab.id, {url: 'http://google.com'});
});

如果想让弹出页面中的每个链接都更新当前打开的标签页。您可以执行以下操作(正如您在评论中提到的,但使用的是 currentTarget):

$('a').live('click', function(e) {
  var href = e.currentTarget.href;
  chrome.tabs.getSelected(null,function(tab) {
    chrome.tabs.update(tab.id, {url: href});
  });
  window.close(); // To close the popup.
});

关于javascript - 如何在下面的同一选项卡中打开来自 Google Chrome 扩展程序弹出窗口的链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3765004/

相关文章:

javascript - 关闭在加载时激活,而不是复选框更改

javascript - 我们如何访问 JavaScript 中上下文 Promise 的 then block 中的输入值?

google-chrome-extension - importScripts 而从脚本之一抛出错误

google-chrome-extension - 使用 Chrome 扩展程序创建始终存在的侧边栏

javascript - 检查 Chrome 扩展程序中加载的页面

javascript - 是否保证 for...of 循环内的异步调用将按顺序返回?

javascript - 多项目 webpack 配置建议

java - session 未创建异常 : Chrome version must be >= 65. 0.3325.0

HTML mailto 主题和正文显示加号 (+) 而不是邮件客户端中的空格

javascript - 如何检测 "prevent this page from creating additional dialogs"