Javascript 通过js中的按钮触发Ctrl S
我想使用浏览器的“另存为”功能。如何通过javascript中的按钮触发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
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
,而是询问是否可以触发它。如果您想通过自定义事件触发“另存为”对话框,则出于安全原因,不允许该对话框。我不想捕获此键。我想在点击按钮时看到浏览器的“另存为”弹出窗口;将您的信息置于警告状态(“您的信息”);