我想写一个代码来绑定单击事件的另存为选项。我不想使用filesaver.js。我想要纯JavaScript来编写这段代码。是否有可能在javascript中点击事件绑定ctrl + s?
0
A
回答
0
你可以做这样的事情:
var isCtrlPressed = false;
function onKeyDown(event) {
if (event.keyCode == 17) { // Control got pressed
isCtrlPressed = true;
}
if (event.keyCode == 83) { // "s" got pressed
// if control is pressed too execute some code
if (isCtrlPressed) {
// Your code here
}
}
}
function onKeyUp(event) {
if (event.keyCode == 17) { // Control got pressed
isCtrlPressed = false;
}
}
然后在你的身体标记添加下列事件:
<body onkeydown="onKeyDown(event)" onkeyup="onKeyUp(event)">
</body>
你可以在这里找到一个lifedemo: http://jsbin.com/eBIRAfA/1/edit
+0
我认为这是错误的方法。在鼠标事件中,应该发射这些关键事件而不是其他方式。 – Christoph
1
HTML5标准引入了File API,它应该允许脚本提供用于保存的“文件”(Blobs)。虽然支持是伪造的,这就是为什么像FileSaver.js这样的填充存在的原因。 Filesaver.js也是“纯粹的”javascript,所以我不确定为什么需要一个纯粹的javascript解决方案会阻止它的使用(除非你的意思是你不能加载外部脚本 - 只是简化和内联它(以及许可等)。 ))现在,如果您必须自己编写代码,那么您提出的任何跨浏览器解决方案都可能是对polyfil的有效重写。
一旦你有saveAs()
的实现,只需将其连接到任何事件触发你喜欢:
myButton.addEventListener('click', function() { window.saveAs(fileBlob, 'filename.txt') });
澄清:每W3C spec上活动作为,所有不受信任的事件(包括按键事件)就好像event.preventDefault()
被称为 - 所以有明确无法模拟实际ctrl + s按键 - 只有方式来模拟其影响。
相关问题
- 1. 使用Javascript触发鼠标中点击事件是否可能?
- 2. jquery插件绑定ctrl +鼠标点击事件
- 3. 是否有可能在Javascript中当有人点击一个flashobject
- 4. ctrl +点击在JavaScript中
- 5. 是否有可能找到绑定到特定HTML的JavaScript事件?
- 6. 在aurelia中绑定点击事件
- 7. 是否有可能用wordcloud2创建闪亮的点击事件?
- 8. 绑定事件点击
- 9. jquery:绑定“点击”事件
- 10. on点击触发CTRL + s浏览器事件
- 11. 点击事件没有绑定?
- 12. 在jQuery中绑定事件(双击事件点击...)
- 13. 事件绑定Ctrl-Shift-N
- 14. 是否有可能在JavaScript只是用Ctrl + C复制图像
- 15. Jquery点击事件绑定事件
- 16. 是否有必要在Knockout自定义绑定中解除绑定/关闭JQuery点击事件?
- 17. Javascript的jQuery是否有可能调用点击功能
- 18. 在ItemsControl上绑定CommandParameter点击事件
- 19. 是否有没有使用JavaScript的点击事件?
- 20. jQuery - 绑定/取消绑定事件图像点击事件
- 21. 是否可以绑定wx.StaticText上的单击事件?
- 22. 触发CTRL + S当按钮被点击
- 23. 是否可以将点击事件绑定到按钮内的图像?
- 24. 是否有可能通过实际点击或触发来检测jQuery点击事件是否已被调用?
- 25. 是否有可能使一个子项在ListView中可点击
- 26. 点击事件在第二个foreach中没有绑定
- 27. 是否有可能将点击事件添加到ListView Tile中的图标?
- 28. Durandal.js/Knockout.js - 是否有可能在compositionComplete之后返回原始点击事件?
- 29. 是否有可能在Javascript
- 30. 将单击事件绑定到已具有单击事件绑定的按钮是否会导致问题?
http://stackoverflow.com/questions/93695/best-cross-browser-method-to-capture-ctrls-with-jquery – Vivek
是的,这是可能的和很多的应用程序这样做......不幸的是,他们不对于mac用户,不支持command + s:P – FaddishWorm
@Vivek就我所能说的这个问题而言,问的是与你链接的相反 - 并不是如何捕获ctrl + s键盘事件,而是触发ctrl + s/save -as命令的方法_other_比键盘/应用程序菜单方法 –