Chrome扩展程序会导航到网址

时间:2014-05-08 07:11:28

标签: javascript google-chrome-extension

我正在尝试制作Chrome扩展程序,其中我已经有一个包含多个锚点的HTML文件,并且我尝试在点击时让Chrome打开一个带有该网址的新标签页。

为此目的,我在"permissions": ["tabs"]

中有manifest.json
chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.create({'url': event.target.href})
})

在我的JS文件中;但那只是不起作用。我能错过什么?

此致 MTO

3 个答案:

答案 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});
  });
});