Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome扩展导航到URL_Javascript_Google Chrome Extension - Fatal编程技术网

Javascript Chrome扩展导航到URL

Javascript Chrome扩展导航到URL,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在尝试制作一个Chrome扩展,其中我已经有一个带有多个锚的HTML文件,并试图让Chrome在单击时打开一个带有该URL的新选项卡 为此,我在我的manifest.json和 chrome.browserAction.onClicked.addListener(function(tab) { chrome.tabs.create({'url': event.target.href}) }) 在我的JS文件中;但这是行不通的。我会错过什么 问候,, mto这是我通常的做法(例如:单击p

我正在尝试制作一个Chrome扩展,其中我已经有一个带有多个锚的HTML文件,并试图让Chrome在单击时打开一个带有该URL的新选项卡

为此,我在我的
manifest.json

chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.create({'url': event.target.href})
})
在我的JS文件中;但这是行不通的。我会错过什么

问候,,
mto

这是我通常的做法(例如:单击popup.html中的链接)

popup.html

<a href="http://whereever.you.go.com/whatever.html" class="clickme">Click</a>
或者普通Javascript(每个类为
clickme
的元素都是锚定)

window.addEventListener('load',function(){
var theAnchors=document.getElementsByClassName('clickme');

对于(i=0,len=theAnchors.length;i我终于能够做到了

我需要的代码是:

document.addEventListener('DOMContentLoaded', function() {
  window.addEventListener('click', function(e) {
    chrome.tabs.create({'url': event.target.href});
  });
});
非常感谢那些甚至试图提供帮助的人:)

问候,,
K.

使用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});
  });
});
//等待DOM准备就绪,jQuery风格:
$(文档).ready(函数(){
//将单击处理程序绑定到所有元素:
$('a')。单击(函数(e){
//事件作为参数“e”传递到处理程序中
create({'url':e.target.href});
});
});

抱歉,伙计们,我还是一个新手,正在尝试学习格式化:)请使用搜索功能。两天前有人问了一个相同的问题。我不明白……您如何期望浏览器操作图标知道您“前一段时间”单击的HTML元素的href浏览器操作图标???@devnull69该图标打开了一个HTML文件,其中有几个锚。@nietonfir你能给我一个链接吗?这真的很有趣。我有下面的HTML和JS,当我点击它时,URL似乎什么都没做。document.getElementByClassName('URL')[0]。onclick=function(){chrome.tabs.create({'url':event.target.href});};event.target未定义。
event
仅在Internet Explorer中定义为全局对象,在Chrome中,您必须将事件对象作为参数提供给事件处理程序
onclick=function(e){…e.target…}
…或者您更愿意使用DOM2事件监听器,如
元素.addEventListener('click',函数(e){…},false)
不是要发动一场火焰之战,而是
事件。target
在Chrome上工作过。我真的,真的疯了。我应用了你给我的代码,不管我做什么,我都无法让它工作。下面是完整的代码:
元素。addEventListener('click',函数(e){Chrome.tabs.create({url':this.href});}
我想知道我是否应该添加一个
文档。addEventListener('DOMContentLoaded',function(){
如果点击
元素会发生什么?这是一个非常好的问题@Xan,你有什么建议吗?也许可以将每个URL包装在一个单独的div中?我会说-使用jQuery,
$('a')。点击(函数(e){/*…*/});
同时绑定到所有链接(并且只绑定到链接)。@Xan我已经尝试了你的建议,但遗憾地看到它不起作用:S这是我现在的代码:
document.addEventListener('DOMContentLoaded',function(){$.('a')。单击(function(e){chrome.tabs.create({url':event.target.href});})
关于,@Xan所说的“它不工作”,我的意思是当我点击任何URL时,什么都不会发生。
document.addEventListener('DOMContentLoaded', function() {
  window.addEventListener('click', function(e) {
    chrome.tabs.create({'url': event.target.href});
  });
});
// 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});
  });
});