Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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 event.preventDefault不适用于任何地方?_Javascript_Jquery_Google Chrome Extension - Fatal编程技术网

Javascript event.preventDefault不适用于任何地方?

Javascript event.preventDefault不适用于任何地方?,javascript,jquery,google-chrome-extension,Javascript,Jquery,Google Chrome Extension,我做了一个chrome扩展,通过在内容页上使用click event listener从网页中获取元素,但preventDefault只工作了几次 例如,当我单击菜单栏时,它会重定向到下一页,而不是阻止单击操作发生。 这是我在content.js中的事件侦听器 document.addEventListener('click', function xyz(e){ e.preventDefault(); //alert(e); var target = e.target || event.srcE

我做了一个chrome扩展,通过在内容页上使用click event listener从网页中获取元素,但preventDefault只工作了几次

例如,当我单击菜单栏时,它会重定向到下一页,而不是阻止单击操作发生。 这是我在content.js中的事件侦听器

document.addEventListener('click', function xyz(e){
e.preventDefault();
//alert(e);
var target = e.target || event.srcElement;
var attributes = Array.prototype.slice.call(target.attributes).map(function(i)    {
    return [String(i.name)+": "+String(i.value)]
})
alert(attributes);
prompt("xpath1 :",getPathTo(target));
chrome.runtime.sendMessage({method:"captureElement",data:attributes});   
},true)

如何阻止点击事件发生

您需要使用return false;或使用e.preventeddefault;和e.stopPropagation在一起。因为这将防止事件冒泡到父锚点标记。

这是因为您将事件处理程序附加到文档本身,而不是某个子文档。因此,如果您单击一个子元素,只有当它通过冒泡到达文档时,事件才会被阻止,但同时它会被触发。

如果源元素是a中的一个跨度,则e.preventDefault可能不起作用?此事件处理程序不是使用捕获模式吗,正如第三个参数=true所证明的那样?我尝试了这个方法,但是在这个网站上,它没有给出点击元素的详细信息!您尝试了“return false;”?此外,您应该仅将单击事件绑定到标记。你不应该吗?