无法在 Salesforce Lightning 页面中禁用右键单击
Not able to disable right-click in Salesforce Lightning Page
如果使用 javascript/jquery 在 html 页面中完成,问题就很简单了。但不适用于 Salesforce Lightning 页面。
我想禁用 ui:inputText
但无法执行,因为它不支持 contextmenu
事件。
我能够正确检测到右键单击,但未能使用 mousedown
事件和 return false
.
禁用它
下面是我的代码
第
页
<ui:inputText aura:id="phid" class="input-data phoneTxt" value="{!v.phno}" keydown="{!c.checkKey}" maxlength="10"
cut="{!c.showresult}" mousedown="{!c.showresult}" updateOn="cut keydown keyup keypress mousedown" />
控制器
preventAction : function(component, event, helper) {
//console.log(event.getParams('button'));
console.log(event.getParams());
if (event.getParams().domEvent.button==2){
//alert("Right Click is not Allowed");
//event.getParams().domEvent.preventDefault();
//event.getParams().domEvent.stopPropagation();
event.getParams().domEvent.returnValue = false;
}
}
注意:我之前试图禁用右键单击剪切、复制和粘贴,但想到仅禁用右键单击应该可以解决问题。
请提出一些解决此问题的方法。
提前致谢。
嗨,这个对我有用。在组件中添加这个,
<aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
在controller.js中添加这个
doInit : function(component, event, helper) {
document.addEventListener('contextmenu', event => event.preventDefault());
},
如果使用 javascript/jquery 在 html 页面中完成,问题就很简单了。但不适用于 Salesforce Lightning 页面。
我想禁用 ui:inputText
但无法执行,因为它不支持 contextmenu
事件。
我能够正确检测到右键单击,但未能使用 mousedown
事件和 return false
.
下面是我的代码
第
页<ui:inputText aura:id="phid" class="input-data phoneTxt" value="{!v.phno}" keydown="{!c.checkKey}" maxlength="10"
cut="{!c.showresult}" mousedown="{!c.showresult}" updateOn="cut keydown keyup keypress mousedown" />
控制器
preventAction : function(component, event, helper) {
//console.log(event.getParams('button'));
console.log(event.getParams());
if (event.getParams().domEvent.button==2){
//alert("Right Click is not Allowed");
//event.getParams().domEvent.preventDefault();
//event.getParams().domEvent.stopPropagation();
event.getParams().domEvent.returnValue = false;
}
}
注意:我之前试图禁用右键单击剪切、复制和粘贴,但想到仅禁用右键单击应该可以解决问题。
请提出一些解决此问题的方法。
提前致谢。
嗨,这个对我有用。在组件中添加这个,
<aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
在controller.js中添加这个
doInit : function(component, event, helper) {
document.addEventListener('contextmenu', event => event.preventDefault());
},