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/
我有同样的问题,这是我的方法:
<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});
};
})();
}
});
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)
其他答案有效.为了完整性,另一种方法是添加 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)
| 归档时间: |
|
| 查看次数: |
36355 次 |
| 最近记录: |