0

如果使用 javascript/jquery 在 html 页面中完成,问题很简单。但不能在 Salesforce Lightning 页面中工作。我想禁用 aui: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;
    }
}

注意:我之前尝试禁用右键单击剪切、复制和粘贴,但认为仅禁用右键单击应该可以解决问题。

请提出一些解决这个问题的方法。

提前致谢。

4

1 回答 1

0

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

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

在 controller.js 添加这个

  doInit : function(component, event, helper) {
       document.addEventListener('contextmenu', event => event.preventDefault());
  },
于 2017-04-18T10:36:15.420 回答