Javascript 通过js中的按钮触发Ctrl S

Javascript 通过js中的按钮触发Ctrl S,javascript,jquery,Javascript,Jquery,我想使用浏览器的“另存为”功能。如何通过javascript中的按钮触发CTRL+S。可能吗? 我试过这个 $("#Save").click(function() { var e = $.Event( "keydown", { keyCode: 115, ctrlKey:true} ); $("body").trigger(e); }); 只有使用jQuery,才能将其导入到文件中 $(document).bind('keydown', function(e) { if(e

我想使用浏览器的“另存为”功能。如何通过javascript中的按钮触发
CTRL
+
S
。可能吗? 我试过这个

$("#Save").click(function() {
    var e = $.Event( "keydown", { keyCode: 115, ctrlKey:true} );
    $("body").trigger(e);
});

只有使用jQuery,才能将其导入到文件中

$(document).bind('keydown', function(e) {
  if(e.ctrlKey && (e.which == 83)) {
    e.preventDefault();
    alert('Ctrl+S');
    return false;
  }
});
CTRL+S

您可以在
单击
事件上模拟
ctrl
+
s
,如下示例:

$("#Save").click(function() {
  e = $.Event("keydown");
  e.which = 83; // S
  e.ctrlKey = true; // CTRL
  $(document).trigger(e);
});

您可以使用
KeyboardEvent
生成自定义事件。但是与事件相关的默认操作(例如,
ctrl+s
ctrl+p
)不是由浏览器启动的。看一下MDN中的以下注释

来源-

注意:手动触发事件不会生成默认操作 与该事件有关。例如,手动触发关键事件 不会导致该字母出现在聚焦文本输入中。在 对于UI事件,出于安全原因,这一点很重要,因为 防止脚本模拟与交互的用户操作 浏览器本身

触发自定义事件的代码:

(()=>{
document.querySelector(“#saveMe”).addEventListener('click',($event)=>{
let event=新键盘事件('keydown'{
键:“s”,
代码:“钥匙”,
克特尔基:是的
});
文件、调度事件(事件);
});
document.addEventListener('keydown',($event)=>{
log('keydown-fired',$event);
});
})();

据我所知,这是不可能的。出于安全原因,浏览器允许Javascript触发与浏览器交互的事件是不明智的

然而,有一个实验你可以使用


您可以创建自己的模式弹出窗口,并使用FileSystemAPI读取本地文件,并提示用户选择保存位置。

这已得到回答。这是否回答了您的问题@sjv不是询问如何确定是否按下了
Ctrl+S
,而是询问是否可以触发它。如果您想通过自定义事件触发“另存为”对话框,则出于安全原因,不允许该对话框。我不想捕获此键。我想在点击按钮时看到浏览器的“另存为”弹出窗口;将您的信息置于警告状态(“您的信息”);