我想寫一個代碼來綁定單擊事件的另存爲選項。我不想使用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_比鍵盤/應用程序菜單方法 –