html js 读取资源文件,javascript如何读取文件?

因为JavaScript中的Web API有了新的方法File API,所以我们在浏览器上读取文件并处理数据更加方便而且不需要使用到后端服务器。

480e6749a4c2d3bb7de607281aaa6a6e.png

FileReader就是从一个文件中读取数据并存储在一个JavaScript变量中,它与XMLHttpRequest含义差不多,都是从一个外部资源加载数据而且读操作是异步的,这样的好处是不会使浏览器堵塞。它读取操作的方法有多种多样的,例如以下几种方法

(1)readAsText() – 以纯文本的形式返回文件内容

该readAsText()方法可用于读取文本文件。该方法有两个参数。第一个参数是用于File或Blob要被读取的对象。第二个参数用于指定文件的编码。第二个参数是可选的。如果未指定,UTF-8则默认采用编码。

在设置中需要在文件加载完成后设置一个事件监听器。onload调用事件时,我们可以检查result属性FileReader所获取文件的内容。

var file=document.getElementById("file");

var reader = new FileReader();

reader.οnlοad=function(e){

var text=reader.result;

}

reader.readAsText(file);

(2)readAsArrayBuffer() 方法

该方法将读取一个Blob或一个File对象并生成一个ArrayBuffer。当读取操作完成时,readyState 变成 done(已完成),并触发 loadend 事件,同时 result 属性中将包含一个 ArrayBuffer 对象用以表示所读取文件的数据,ArrayBuffer 是固定长度的二进制数据缓冲区。

在操作文件时比如将JPEG图像转换为PNG。

var file=document.getElementById("file");

var reader = new FileReader();

reader.οnlοad=function(e){

var readAsArrayBuffer=reader.result;

}

reader.readAsArrayBuffer(file);

(3)readAsDataURL() 使用数据URL的形式返回文件内容

该方法接受File或Blob生成数据URL,这基本上是文件数据的base64编码字符串可以将此数据URL用于设置src图像属性等内容

var file=document.getElementById("file");

var reader = new FileReader();

reader.οnlοad=function(e){

var dataURL = reader.result;

}

reader.readAsDataURL(file);

上面的三种方法在使用过程中要在开始读取之前,必须监听load事件,而event.target.result是返回读取的结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
跨域读取 HTML 文件通常需要使用 CORS 或 JSONP 技术。以下是两种方法的介绍: ### 使用 CORS CORS(跨源源共享)是一种浏览器技术,它允许网页向其它域名的服务器发出 XMLHttpRequest 请求,从而实现跨域通信。如果服务器支持 CORS,那么你只需要在 JavaScript 中发送一个 GET 请求即可读取跨域的 HTML 文件。以下是一个示例: ```javascript const xhr = new XMLHttpRequest(); xhr.open('GET', 'http://example.com/example.html'); xhr.withCredentials = true; // 如果需要发送身份凭证,需要设置此项 xhr.onload = function() { if (xhr.status === 200) { console.log(xhr.responseText); // 打印 HTML 文件内容 } else { console.log('请求出错。'); } }; xhr.send(); ``` 在以上代码中,我们向 `http://example.com/example.html` 发送了一个 GET 请求。由于我们需要发送身份凭证,因此需要设置 `withCredentials` 为 `true`。如果服务器支持 CORS,那么请求会成功,并且我们可以通过 `xhr.responseText` 获取响应文本。 ### 使用 JSONP JSONP(JSON with Padding)是一种跨域通信技术,它通过动态创建一个 `<script>` 标签来实现跨域获取数据。以下是一个示例: ```javascript function handleResponse(response) { console.log(response); // 打印 HTML 文件内容 } const script = document.createElement('script'); script.src = 'http://example.com/example.html?callback=handleResponse'; document.body.appendChild(script); ``` 在以上代码中,我们创建了一个 `handleResponse` 函数,它将会处理服务器返回的数据。然后,我们动态创建一个 `<script>` 标签,将 `src` 属性设置为 `http://example.com/example.html?callback=handleResponse`。服务器将会返回类似于 `handleResponse('HTML 文件内容')` 的响应,从而触发我们定义的 `handleResponse` 函数,并将 HTML 文件内容作为参数传入。请注意,服务器需要支持 JSONP,才能够返回正确的响应。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值