wtujcf123 发表于 2023-5-5 22:54

如何使用js实现ctrl+s功能

各位老师,chrome 浏览器的ctrl+s (网页另存为)快捷键功能非常好用,可以将当前渲染后的网页完整保存为静态网页,基本上不失真。但默认的文件名读取的是标题,如果想要换一个标题,只能手动修改。
如何编写js代码实现以下步骤
1.按下ctrl+s 快捷键
2.将抓取网页的特定元素内容回填为文件名。


请问这个要怎么写呢?

huansheng 发表于 2023-5-5 23:10

```js
function download(filename, content) {
    var blob = new Blob(, {type: 'text/plain'});
    var url = window.URL.createObjectURL(blob);
    var a = document.createElement('a');

    a.style = "display: none";
    a.href = url;
    a.download = filename;
    document.body.appendChild(a);
    a.click();

    setTimeout(function () {
      document.body.removeChild(a);
      window.URL.revokeObjectURL(url);
    }, 5);
}
download(document.title+'.html',HTMLNODE?.innerHTML);
```

wtujcf123 发表于 2023-5-5 23:13

huansheng 发表于 2023-5-5 23:10
```js
function download(filename, content) {
    var blob = new Blob(, {type: 'text/plain ...

老师,这个代码遇到特殊的网页应该不能完整的保存

ppj975 发表于 2023-5-5 23:34

本帖最后由 ppj975 于 2023-5-5 23:37 编辑

1. 监听ctrl + s按键事件
2. 修改标题
3. 改回标题

wtujcf123 发表于 2023-5-5 23:38

ppj975 发表于 2023-5-5 23:34
1. 监听ctrl + s按键事件
2. 修改标题
3. 改回标题

应该不需要改回标题

d199212 发表于 2023-5-6 08:20

huansheng 发表于 2023-5-5 23:10
```js
function download(filename, content) {
    var blob = new Blob(, {type: 'text/plain ...

iframe内部的也可以吗?
页: [1]
查看完整版本: 如何使用js实现ctrl+s功能