无法在Salesforce Lightning页面中禁用右键单击

时间:2017-04-18 03:09:53

标签: javascript salesforce-lightning

如果使用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;
    }
}

注意:我之前尝试禁用右键单击剪切,复制和放大粘贴,但想到只禁用右键单击应解决问题。

请为此问题提出一些解决方案。

提前致谢。

1 个答案:

答案 0 :(得分:0)

嗨,这个对我有用。在组件中添加此内容,

  <aura:handler name="init" value="{!this}" action="{!c.doInit}"/>

在controller.js中添加此

  doInit : function(component, event, helper) {
       document.addEventListener('contextmenu', event => event.preventDefault());
  },