2种形式都可以 第一种: 代码如下: [removed] function SaveAs5(imgURL) { var oPop = window.open(imgURL,””,”width=1, height=1, top=5000, left=5000″); for(; oPop.document.readyState != “complete”; ) { if (oPop.document.readyState == “complete”)break; } oPop.document.execCommand(“SaveAs”); oPop.close(); } [removed] <im 在JavaScript中,保存文件到本地通常涉及到用户交互和浏览器安全限制。由于JavaScript是客户端脚本语言,它不能直接访问用户的文件系统,以防止恶意代码的潜在风险。然而,通过一些技巧,可以诱导用户以安全的方式下载文件。在提供的标题和描述中,提到了两种不同的方法来实现这个功能。下面我们将详细探讨这两种方法。 ### 第一种方法: 这种方法利用了`window.open`函数创建一个新的弹出窗口,并设置其尺寸为非常小(1x1像素),这样用户不会注意到。然后,它加载指定的文件URL到这个新窗口。接着,代码进入一个循环,等待新窗口的文档状态变为"complete",这表示文件已经完全加载。一旦加载完成,`document.execCommand("SaveAs")`被调用,这会触发浏览器的“另存为”对话框,让用户选择保存文件的位置。弹出窗口关闭。这是一个HTML示例: ```html <script> function SaveAs5(imgURL) { var oPop = window.open(imgURL,"","width=1, height=1, top=5000, left=5000"); for(; oPop.document.readyState != "complete"; ) { if (oPop.document.readyState == "complete") break; } oPop.document.execCommand("SaveAs"); oPop.close(); } </script> <img src="t_screenshot_17616.jpg" id="DemoImg" border="0" onclick="SaveAs5(this.src)"> ``` 在这个例子中,当用户点击图片时,`SaveAs5`函数会被调用,将图片的源URL作为参数传递,从而触发文件保存。 ### 第二种方法: 这个方法与第一种类似,也是使用`window.open`和`document.execCommand("SaveAs")`,但不同之处在于,文件的下载是通过点击链接触发的。在HTML中,我们有一个链接,当用户点击这个链接时,会调用`SaveAs5`函数,传递的是`DemoImg`图片元素的源URL。下面是代码: ```html <script> function SaveAs5(imgURL) { var oPop = window.open(imgURL,"","width=1, height=1, top=5000, left=5000"); for(; oPop.document.readyState != "complete"; ) { if (oPop.document.readyState == "complete") break; } oPop.document.execCommand("SaveAs"); oPop.close(); } </script> <img src="../t_screenshot_17616.jpg" id="DemoImg" border="0"> <a href="#" onclick="SaveAs5(document.getElementById('DemoImg').src)">点击这里下载图片</a> ``` 在这种情况下,用户点击链接而不是图片本身来触发下载。 需要注意的是,`document.execCommand("SaveAs")`并不在所有浏览器中都支持,特别是较新的浏览器可能会忽略这个命令,因为出于安全考虑,许多现代浏览器已经废弃了这个功能。因此,这种技术可能在某些环境下不工作。对于更广泛的兼容性和更可靠的解决方案,可以考虑使用HTML5的`<a>`标签的`download`属性,或者利用Blob对象和`URL.createObjectURL()`来创建一个可下载的URL。 例如: ```html <a href="data:image/jpeg;base64,[base64-encoded-image-data]" download="filename.jpg">下载图片</a> ``` 或 ```javascript // 创建Blob对象 var blob = new Blob([binaryData], {type: 'image/jpeg'}); // 创建URL var url = URL.createObjectURL(blob); // 使用下载链接 var link = document.createElement('a'); link.href = url; link.download = 'filename.jpg'; link.click(); ``` 这两种JavaScript实现本地文件保存的方法都是基于浏览器的行为和特性,因此在实际应用中应考虑到兼容性问题,并且需要了解现代浏览器的安全限制。如果需要更稳定和跨平台的解决方案,可以考虑服务器端的支持,比如提供专门的下载接口。

























- 粉丝: 3
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- XW万能铣床电控系统的PLC设计[].doc
- 基于Laravel54与Vuejs构建的本地文档全文搜索引擎系统-集成Elasticsearch551实现高效索引与检索-支持用户笔记与开发文档的智能搜索与管理-采用PHP.zip
- 某类国防工程信息化管理系统项目需求及方案设计.docx
- 图像灰度变化程序设计.doc
- 操作系统处理器调度算法C++程序.doc
- “嵌入式产品开发”项目竞赛技术方案.doc
- 土地测绘技术的信息化与土地开发管理措施.docx
- 2018年百万公众网络学习工程测试参考答案.doc
- C语言程序设计2014春第三套作业.docx
- 大数据下的不动产登记档案的信息管理及利用.docx
- 大楼综合布线设计方案.docx
- 微信公众平台对高校网络舆论影响的研究.docx
- 试卷分析模型构建--基于教育大数据的实证分析.docx
- 网络金融学教案全解.doc
- 新互联网下高职计算机专业教学模式改革初探.docx
- 大数据环境下开放信息资源共享平台构建.docx



评论0