Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.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 如何停止用户点击的效果?_Javascript_Html_Css_Google Chrome Extension - Fatal编程技术网

Javascript 如何停止用户点击的效果?

Javascript 如何停止用户点击的效果?,javascript,html,css,google-chrome-extension,Javascript,Html,Css,Google Chrome Extension,我正在做一个chrome扩展来编辑被点击的图像的属性。我使用一个名为element picker的包来选择图像(这是通过弹出窗口中的html按钮触发的)。代码可以工作,我可以更改图像的属性。但是,该包不会停止与图像链接的任何操作,这通常会导致用户进入新页面。在按下弹出窗口中的按钮和选择图像之间,如何停止用户单击的任何操作? 先谢谢你 var elementPicker = require('element-picker') function onClick(elt) { [.....]

我正在做一个chrome扩展来编辑被点击的图像的属性。我使用一个名为element picker的包来选择图像(这是通过弹出窗口中的html按钮触发的)。代码可以工作,我可以更改图像的属性。但是,该包不会停止与图像链接的任何操作,这通常会导致用户进入新页面。在按下弹出窗口中的按钮和选择图像之间,如何停止用户单击的任何操作? 先谢谢你

var elementPicker = require('element-picker')

function onClick(elt) {
    [.....]
}
elementPicker.init({ onClick })

如果有一个事件对象正在传递给该函数,则可以使用Event.preventDefault()函数

此函数停止任何默认行为,并允许您以自己的方式处理事件


参考资料:

我通常不建议使用此选项,但CSS
指针事件可以解决此问题。其思想是任何带有
指针事件的元素:none
都将忽略任何交互。这可以阻止默认的HTML交互,如
以及附加到元素的任何javascript操作

这是模态窗口经常使用的技术,用于防止单击“穿过”模态周围的区域。它也应该适用于您描述的内容

您可以使用
*{style…}
选择器在图像元素或所有元素上设置该样式。如果选择“全部”路径,则需要在扩展接口中仍然需要使用“auto”属性进行操作的任何元素上显式重新启用指针事件


请记住在扩展完成时重置指针事件
*{pointer events:initial;},否则页面将完全处于可操作状态。

非常感谢,此解决方案看起来非常简单。*{pointer events:initial;}是否会将每个指针事件返回到其原始状态,或者仅启用指针事件,即使它们已从早期禁用?@UrielSasieni
initial
返回到浏览器默认状态。因此,我假设您不需要使用javascript设置样式然后重新设置,而是希望将CSS选择器写入
标记,然后在完成后将其删除。如果您需要帮助,请看一看。我使用了
document.querySelector('*').style[“指针事件”]='none
initial
,最后,我认为应该可以,因为我认为禁用指针事件的元素非常罕见。作为一般做法,我同意。但总是边缘案例让我着迷。:-)我的编码方式似乎让大多数情况成为例外!出于某种原因,唯一被禁用的事件是显式链接,但嵌入图像中的链接和放大等操作仍然可以发生。