如何关闭右键单击并使用 JS 中的函数?
How can I turn right click off and on using functions in JS?
我使用以下命令禁用了我的应用程序中的右键单击:
<body oncontextmenu="return false;">
我有一个启用了拼写检查的文本区域元素。我希望能够在此字段中右键单击(用于拼写检查),但我希望在应用程序的其他任何地方都禁用右键单击。
我做了以下事情:
<textarea onfocus="rightclickon()" onblur="rightclickoff()" spellcheck="true"></textarea>
这些是函数:
function rightclickon() {
$('body').prop('oncontextmenu', 'null');
}//end rightclickon
function rightclickoff() {
$('body').prop('oncontextmenu', 'return false');
}//end rightclickoff
我上面的逻辑是,每当用户进入文本区域时,右键单击将被启用,但当他们离开该字段时,它将再次被禁用。这不符合我的预期。
第一部分有效(当用户进入该字段时启用右键单击)。但是,当字段离开时,右键单击不会再次被禁用。它只是保持打开状态。
他们是实现我想要的更简单的方法吗?
只需检查事件的起源并相应地决定要做什么
document.addEventListener('contextmenu', function(e) {
if (!e.target.matches('textarea')) {
e.preventDefault()
}
}, false)
<p>Some paragraph</p>
<ul>
<li>List 1</li>
<li>List 2</li>
<li>List 3</li>
</ul>
<textarea>Just try right-clicking in here</textarea>
<p>Another paragraph</p>
有关 Element.matches
的详细信息,请参见 https://developer.mozilla.org/en/docs/Web/API/Element/matches
我使用以下命令禁用了我的应用程序中的右键单击:
<body oncontextmenu="return false;">
我有一个启用了拼写检查的文本区域元素。我希望能够在此字段中右键单击(用于拼写检查),但我希望在应用程序的其他任何地方都禁用右键单击。
我做了以下事情:
<textarea onfocus="rightclickon()" onblur="rightclickoff()" spellcheck="true"></textarea>
这些是函数:
function rightclickon() {
$('body').prop('oncontextmenu', 'null');
}//end rightclickon
function rightclickoff() {
$('body').prop('oncontextmenu', 'return false');
}//end rightclickoff
我上面的逻辑是,每当用户进入文本区域时,右键单击将被启用,但当他们离开该字段时,它将再次被禁用。这不符合我的预期。
第一部分有效(当用户进入该字段时启用右键单击)。但是,当字段离开时,右键单击不会再次被禁用。它只是保持打开状态。
他们是实现我想要的更简单的方法吗?
只需检查事件的起源并相应地决定要做什么
document.addEventListener('contextmenu', function(e) {
if (!e.target.matches('textarea')) {
e.preventDefault()
}
}, false)
<p>Some paragraph</p>
<ul>
<li>List 1</li>
<li>List 2</li>
<li>List 3</li>
</ul>
<textarea>Just try right-clicking in here</textarea>
<p>Another paragraph</p>
有关 Element.matches