【问题标题】:How to perform own action on F5 key press in UI5?如何在 UI5 中按 F5 键执行自己的操作?
【发布时间】:2021-11-01 21:01:22
【问题描述】:

不知道如何替换SAPUI5中的F5键动作。

我有一个“刷新”按钮,它在 UI 中重新加载我的业务数据,并在将其显示在视图上之前进行了某种操作。我想抓住 F5-press 以便可以调用我的刷新方法。

【问题讨论】:

    标签: javascript sapui5 keyevent


    【解决方案1】:

    从 UI5 1.70 (commit:59b83bf) 开始,应用程序可以在 manifest.json 中定义应用程序范围的快捷方式,并在视图中声明相应的事件处理程序。

    这是一个示例:https://embed.plnkr.co/NKOfisfY7w0MOiX8

    manifest.json:

    "sap.ui5": {
      "commands": {
        "MyRefresh": {
          "shortcut": "F5"
        }
    

    在视图中:

    <AnyUI5Control>
      <dependents>
        <core:CommandExecution xmlns:core="sap.ui.core"
          command="MyRefresh"
          execute=".onRefreshData"
        />
      </dependents>
    </AnyUI5Control>
    

    当控件获得焦点时,按F5将触发控制器中的事件处理程序onRefreshData


    请注意UI5中的自定义快捷键功能:

    【讨论】:

    • 嗨 Boghyon,我遇到的问题是我必须始终设置焦点,以便触发器能够做出反应。我尝试过,但随着时间的推移,它会成为用户的抱怨。
    • @LionelSamstag。你碰巧有一个 GitHub 帐户吗?您能否在github.com/SAP/openui5/issues/2788 中添加 ?,以便 UI5 维护人员优先考虑该问题?
    【解决方案2】:

    只需向窗口添加一个事件侦听器并调用preventDefault() 以阻止它执行默认的重新加载操作。

    (运行后点击白色区域内查看是否正常工作,否则页面会重新加载)

    window.addEventListener("keydown", (event) => {
      if (event.key == "F5") event.preventDefault();
    });

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多