您的位置:首页 > Web前端 > JavaScript

前台JS(type=‘file’)读取本地文件的内容,兼容各种浏览器

2016-12-19 23:11 435 查看

【自己测了下,能兼容各种浏览器,但是读取中文会出现乱码。自己的解决方法是用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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐