iT邦幫忙

0

ctrl+s 存檔 html ,js可以直接觸發熱鍵嗎?

一般來說在網頁按下ctrl+s可以存檔
想請問各位可以設一個button onclilk function
就直接執行了嗎?

簡單來說就是按button可以直接儲存html網頁頁面
請問可以這樣做嗎?

fillano iT邦超人 1 級 ‧ 2014-04-02 17:20:57 檢舉
經測試,一些熱鍵並不會觸發html頁面的事件。(包括Ctrl+s,你bind到window也一樣)

另外,看起來DOM Event標準還會有變動,而且目前各家瀏覽器實做恐怕細節並不一致。(舊的做法是document.createEvent() => event.initKeyboardEvent(...) => element.dispatchEvent(event),新的做法是element.dispatchEvent(new KeyboardEvent(...))。另外,傳給initKeyboardEvent()的參數細節,各個瀏覽器有不同XD。還有IE9之前的IE瀏覽器,並不支援DOM Event...)說實話,我還沒測試出怎樣產出正確的Event物件XD
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

4
最佳解答

IE限定

<pre class="c" name="code"><script language="JavaScript" type="text/JavaScript">
function saveIt(){
document.execCommand("SaveAs",null,null)
}
</script>>
<a href="javascript:saveIt()">Save This Page </a> 

ref : execcommand(“SaveAs”,null,“file.csv”) is not working in IE8

看更多先前的回應...收起先前的回應...
b14763 iT邦新手 4 級 ‧ 2014-04-02 16:22:02 檢舉

不知道說有沒有可以用chrome的呢?

感謝D大的分享

fillano iT邦超人 1 級 ‧ 2014-04-02 17:23:42 檢舉

剛剛測試了一下,你按下Ctrl+s,頁面根本不會收到鍵盤事件。看起來程式收到熱鍵就開始處理,不會把事件丟進頁面。

b14763 iT邦新手 4 級 ‧ 2014-04-03 09:55:17 檢舉

所以在chrome我想要按button就直接存檔當前網頁畫面也不能嗎?

目前看到中文的解法(搭配jQuery)
透過 jQuery 實現攔截鍵盤的 Ctrl+S 事件
想要在網頁上,允許使用者透過鍵盤的 Ctrl+S 來觸發事件,jQuery 可以幫你。

b14763 iT邦新手 4 級 ‧ 2014-04-22 10:04:51 檢舉

感謝d大的幫忙
但是跟我要的是相反的呢
還是jquery也可以用button存檔呢

我要發表回答

立即登入回答