【自己测了下,能兼容各种浏览器,但是读取中文会出现乱码。自己的解决方法是用notepad++把txt文件编码改为utf-8(应该是和浏览器编码保持一致吧?。。)】
原文 http://blog.csdn.net/xwq1012/article/details/41941895
参考如下:
http://blog.csdn.net/lejuo/article/details/11528243
前台JS读取本地文件内容,兼容IE7、8、9、10 FF Chrome等各种版本,纠结了好长时间,终于找到方法,希望能帮到你,代码如下。直接复制保存为html运行看效果。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <script> function upload(input) { //支持chrome IE10 if (window.FileReader) { var file = input.files[0]; filename = file.name.split(".")[0]; var reader = new FileReader(); reader.onload = function() { console.log(this.result) alert(this.result); } reader.readAsText(file); } //支持IE 7 8 9 10 else if (typeof window.ActiveXObject != 'undefined'){ var xmlDoc; xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = false; xmlDoc.load(input.value); alert(xmlDoc.xml); } //支持FF else if (document.implementation && document.implementation.createDocument) { var xmlDoc; xmlDoc = document.implementation.createDocument("", "", null); xmlDoc.async = false; xmlDoc.load(input.value); alert(xmlDoc.xml); } else { alert('error'); } } </script> <title>file upload</title> </head> <body> <input id='file' type="file" onchange="upload(this)" />【注意,参数传的是这个input的html元素,若是jquery,此参数是$('#file')[0]】 </body> </html>