【发布时间】:2021-11-01 21:01:22
【问题描述】:
不知道如何替换SAPUI5中的F5键动作。
我有一个“刷新”按钮,它在 UI 中重新加载我的业务数据,并在将其显示在视图上之前进行了某种操作。我想抓住 F5-press 以便可以调用我的刷新方法。
【问题讨论】:
标签: javascript sapui5 keyevent
不知道如何替换SAPUI5中的F5键动作。
我有一个“刷新”按钮,它在 UI 中重新加载我的业务数据,并在将其显示在视图上之前进行了某种操作。我想抓住 F5-press 以便可以调用我的刷新方法。
【问题讨论】:
标签: javascript sapui5 keyevent
从 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中的自定义快捷键功能:
shortcut 组合键不与目标控件已经提供的existing shortcuts 重叠。【讨论】:
只需向窗口添加一个事件侦听器并调用preventDefault() 以阻止它执行默认的重新加载操作。
(运行后点击白色区域内查看是否正常工作,否则页面会重新加载)
window.addEventListener("keydown", (event) => {
if (event.key == "F5") event.preventDefault();
});
【讨论】: