我正在尝试制作Chrome扩展程序,其中我已经有一个包含多个锚点的HTML文件,并且我尝试在点击时让Chrome打开一个带有该网址的新标签页。
为此目的,我在"permissions": ["tabs"]
和
manifest.json
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.create({'url': event.target.href})
})
在我的JS文件中;但那只是不起作用。我能错过什么?
此致 MTO
答案 0 :(得分:1)
这就是我通常的做法(例如:点击popup.html中的链接)
<强> popup.html 强>
<a href="http://whereever.you.go.com/whatever.html" class="clickme">Click</a>
<强> popup.js 强>
$('.clickme').click(function() {
chrome.tabs.create({url: $(this).attr('href')});
});
或vanilla Javascript(类clickme
的每个元素都是锚)
window.addEventListener('load', function() {
var theAnchors = document.getElementsByClassName('clickme');
for(i=0, len=theAnchors.length; i<len; i++) {
theAnchors[i].addEventListener('click', function() {
chrome.tabs.create({url: this.href});
}, false);
}
}, false);
答案 1 :(得分:0)
最后我能够做到。
我需要的代码是:
document.addEventListener('DOMContentLoaded', function() {
window.addEventListener('click', function(e) {
chrome.tabs.create({'url': event.target.href});
});
});
非常感谢那些甚至试图提供帮助的人:)
此致 ķ。
答案 2 :(得分:0)
使用jQuery重写,我在评论中暗示了另一个答案:
// Wait for the DOM to be ready, jQuery-style:
$(document).ready( function() {
// Bind a click handler to all <a> elements:
$('a').click( function(e) {
// Event is passed into the handler as parameter "e"
chrome.tabs.create({'url': e.target.href});
});
});