Javascript 如何在Flatter Web中禁用默认浏览器快捷方式? 问题

Javascript 如何在Flatter Web中禁用默认浏览器快捷方式? 问题,javascript,html,flutter,flutter-web,Javascript,Html,Flutter,Flutter Web,如果我在我的Flatter web应用程序中为CTRL++和CTRL+-实现快捷键,默认情况下,浏览器仍将缩放。我希望在覆盖shorcuts时阻止浏览器这样做 用例 当我有自定义快捷方式行为(例如使用)时,我不希望浏览器仍对其作出响应,但无法阻止颤振本身的默认操作 另一个例子是CTRL+D,它在Firefox中创建书签。我想在我的Flatter web应用程序中使用复制的快捷方式 如何防止默认设置?您可以使用JS直接在HTML中防止默认浏览器操作。颤振还没有使用该框架实现触发这种情况的方法(我

如果我在我的Flatter web应用程序中为CTRL++和CTRL+-实现快捷键,默认情况下,浏览器仍将缩放。我希望在覆盖shorcuts时阻止浏览器这样做

用例 当我有自定义快捷方式行为(例如使用)时,我不希望浏览器仍对其作出响应,但无法阻止颤振本身的默认操作

另一个例子是CTRL+D,它在Firefox中创建书签。我想在我的Flatter web应用程序中使用复制的快捷方式



如何防止默认设置?

您可以使用JS直接在HTML中防止默认浏览器操作。颤振还没有使用该框架实现触发这种情况的方法(我怀疑他们会,因为它是特定于web的)


如果您愿意,您也可以使用Dart代码来代替,使用库。但是,最方便的方法是将以下JavaScript代码直接包含在Flatter web应用程序的
index.html
中(在
标记中):


//这将防止对组合键执行默认浏览器操作。
//看https://stackoverflow.com/a/67039463/6509751.
window.addEventListener('keydown',函数(e){
if(event.target==document.body){
//防止返回到上一个选项卡。
如果(event.key=='Backspace'){
event.preventDefault();
}
}
if(event.metaKey | | event.ctrlKey){
开关(事件键){
案例“=”://防止放大。
案例“-”://防止缩小。
案例“d”://防止Firefox上的书签,例如。
案例“g”://防止在Firefox上打开查找,例如。
案例“z”://防止还原Safari上的选项卡。
event.preventDefault();
打破
}
}
});
如您所见,我添加了一些示例,如CTRL+D等,灵感来自Rive

此外,我还添加了一个片段,防止在按backspace键时返回到上一个选项卡。如果您想在文本输入之外使用退格作为删除的快捷方式,则可以使用这种方法