Chrome扩展程序;在新标签页中打开popup.html的链接
我正在做一个Chrome扩展程序,我在这篇文章here中得到了帮助。Chrome扩展程序;在新标签页中打开popup.html的链接
我现在的问题是如何打开一个新的选项卡的铬作为链接我点击popup.html
链接。我试图像其他类似的问题,如设置<a>
的属性target
到_blank
在其他类似的问题中的建议,但唯一的结果是,铬打开一个新的选项卡,但在新标签中是我的popup.html。
任何想法如何解决这个问题?
谢谢。
您应该使用chrome.tabs模块在新选项卡中手动打开所需的链接。尝试在popup.html使用这个jQuery的片段:
$(document).ready(function(){
$('body').on('click', 'a', function(){
chrome.tabs.create({url: $(this).attr('href')});
return false;
});
});
不应该将a的属性作为URL'href'。通过它在两种情况下都不起作用。它打开我一个选项卡与此网址:chrome-extension:// ceapmkdonphjngfdcjcoahdmkenpbgpn /?action = read&idnotizia = 71189 – Advicer 2012-01-19 10:20:58
你对'href',对不起 - 我修复了我的答案。如果你想打开它,你需要在href中提供完整的url。目前,您有像将它们更改为完整网址''的链接。 – 2012-01-19 10:31:50
我认为这是我的扩展的问题。我将域名连接到字符串,现在完美工作。 – Advicer 2012-01-19 11:00:28
见我的评论https://*.com/a/17732609/1340178
我有同样的问题,这是我的方法:
- 创建弹出。带链接的html(并且链接在Chrome浏览器阻止它们时单击时不起作用)。
- 创建popup.js并在页面链接吧:
<script src="popup.js" ></script>
-
下面的代码添加到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}); }; })(); } });
这一切,应该链接后工作。
很好的解决方案,谢谢 – 2013-08-18 04:12:17
完美谢谢。 – user3256143 2015-03-18 02:42:57
如果你不想使用jQuery,这插入到你的popup.js并点击
请记住,当它将使所有的链接在新标签中打开申报清单中的“标签”权限.json
window.addEventListener('click',function(e){
if(e.target.href!==undefined){
chrome.tabs.create({url:e.target.href})
}
})
比jQuery版本好多了,谢谢! – juanignaciosl 2014-11-16 21:08:28
我建议使用“activeTab”权限:https://developer.chrome.com/extensions/activeTab – 2016-10-12 02:17:23
其他答案的工作。为了完整起见,你也可以just addtarget="_blank"
或者,如果你有想“手动”添加特定的链接,这里有一个方法(基于其他的答案已经在这里):
popup.html
<a id="index_link">My text</a>.
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"});
}
我有同样的问题。看起来康拉德的解决方案可以工作,但它一次打开多个选项卡。这只发生在第一次扩展安装之后。所以我把它改为
if (e.target.classList.contains("a-link")) {
chrome.tabs.create({url: $(e.target).attr('href')});
return false;
}
和所有的按预期工作。
[如何使popup.html链接在标签中打开?](http:// *。com/questions/4549869/how-to-make-popup-html-links-open-in-tab) – rogerdpack 2016-10-20 19:50:09