如果使用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;
}
}
注意:我之前尝试禁用右键单击剪切,复制和放大粘贴,但想到只禁用右键单击应解决问题。
请为此问题提出一些解决方案。
提前致谢。
答案 0 :(得分:0)
嗨,这个对我有用。在组件中添加此内容,
<aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
在controller.js中添加此
doInit : function(component, event, helper) {
document.addEventListener('contextmenu', event => event.preventDefault());
},