我正在尝试使页面完全不可识别(右键单击和左键单击),并在有人单击时显示消息。因为我知道这会引发很多问题,比如
"为什么会有人想这样做……这太愚蠢了……那么就没有人了。"可以浏览网站。。。而且它不能保护您的内容无论如何etc"
这是对我的目的的解释。我有一个页面,目前只是一个完成的网站最终会是什么样子的图形模型。无论我解释了多少次,这个模型只是一个图像,而不是一个真正的可导航网站,他们仍然给我发电子邮件说他们不能点击菜单和链接。由于这是一个单页模型,我想弹出一条alert()
消息(不能使用模态,因为如果禁用了单击,则无法单击以将其忽略),让他们知道他们单击了一些不起作用的东西。我正试图在尽可能少的代码行中做到这一点,目前正在进行以下工作:
<script>
$('html').mousedown(function(event) {
event.preventDefault();//To prevent following the link
alert('Demo Graphic Only...clicking on stuff will NOT work at this point.');
});
</script>
问题是,当使用.mousedown
时,我捕捉到用户试图点击浏览器滚动条向下滚动。我对此感到惊讶,因为它不是实际页面内容的一部分,而是浏览器的一部分。。。但它仍在抓住它。我试着用.click
代替.mousedown
,但在这种情况下,似乎只能捕捉到正常的(左)点击。。。有人知道如何轻松地(如果可能的话,代码行数最少)捕获左键和右键单击事件,但允许用户与浏览器滚动条进行交互吗?
试试这个:
$(document).click(function(event) {
event.preventDefault();//To prevent following the link
console.log('Demo Graphic Only...clicking on stuff will NOT work at this point.');
});
单击页面而不是滚动条时,将调用此函数
尝试使用
event.stopPropagation();
或event.stopImmediatePropagation()
对于遇到这个问题的人来说,另一种方法很好,尤其是当你需要特别预防mousedown
时:
将滚动内容放在包装器元素中,并仅在内部元素上阻止mousedown
。将包装器元素设置为overflow: auto; height: 100%;