我正在寻找快速的 JavaScript 修复:
假设您正在使用鼠标或触控板(PC/笔记本电脑)的设备上浏览单个网页,并且我希望发生以下情况。
当您右键单击鼠标时:
- 停用右键单击。所以没有下拉菜单。
- 将右键点击改为左键点击,例如我在图像或 anchor 上单击了鼠标右键,网站应该像我在该元素上单击鼠标左键一样处理它。
此功能应该适用于整个网站的所有元素。 有没有简单的方法可以解决这个问题?
我已经尝试过这个:
<script type="text/javascript">
function click (e) {
if (!e)
e = window.event;
if ((e.type && e.type == "contextmenu") || (e.button && e.button == 2) || (e.which && e.which == 3)) {
if (window.opera)
window.alert("Sorry, this function is deactivated.");
return false;
}
}
if (document.layers)
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown = click;
document.oncontextmenu = click;
clickedOption.parentNode.selectedIndex = clickedOption.index;
</script>
这会禁用鼠标右键单击的功能,但我无法让它像鼠标左键单击一样运行。 有什么解决办法吗?可能出了什么问题?
最佳答案
这将强制在文档或您单击的任何元素上单击鼠标右键
document.addEventListener('contextmenu', function(e){
// Stop the context menu
e.preventDefault();
e.stopPropagation();
// Try to avoid document wide things, just elements
if(e.target.nodeName != 'HTML'){
e.target.click();
}
});
// Testing
document.addEventListener('click',function(e){
e.target.innerHTML = 'Caught';
});
<div>Right Click Me</div>
<span>Right Click Me</span>
回答对我的答案的评论 ->
document.addEventListener('contextmenu', function(e){
// Stop the context menu
e.preventDefault();
e.stopPropagation();
});
// Testing
document.addEventListener('click',function(e){
e.target.innerHTML = 'Caught';
});
<div>I dont work on right clicks</div>
关于javascript - 将网站上的所有右键点击变成左键点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33199235/