首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有自定义XMLHttpRequest的Google Chrome扩展

带有自定义XMLHttpRequest的Google Chrome扩展
EN

Stack Overflow用户
提问于 2011-12-27 22:47:42
回答 1查看 3.3K关注 0票数 1

我正在开发一个扩展,这应该做远程服务器上的文件监控,如果文件更改(实际上它将由一些文本追加)这个文件的变化(追加)部分将需要下载。

所以,这里有一个例子:

首先,文件内容是"abcd“。Extension已经得到了这个部分。然后有人在服务器上添加一些内容到文件中,它将是"abcdefg“。这里的扩展应该只获取这个"efg“,而不是整个内容。使用chrome和XMLHttpRequest可以做到这一点吗?

我已经为FireFox做了这个扩展,并使用了XMLHttpRequest.setRequestHeader("Range","bytes=4-6“)(对于这种特殊情况),但在Chrome中这样做会导致安全冲突。

另外,有没有办法在Chrome中设置XMLHttpRequest.setRequestHeader("Accept-Encoding",(空)?我需要它,以避免打包响应为zip格式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-28 06:58:30

下面是一个简单的工作示例。我希望它能帮助你找到你的问题。

此扩展从http://lists.w3.org/页面下载4个1024字节的块,并在后台页面控制台显示截断的块。

manifest.json

代码语言:javascript
复制
{
  "name": "test",
  "version": "0.0.1",
  "background_page" : "background.html",
  "permissions": [ "http://lists.w3.org/" ]
}

background.html

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
  <meta charset='utf-8'>
  <title>background page</title>
  <script type="text/javascript" src="background.js"></script>
</head>
<body>
</body>
</html>

background.js

代码语言:javascript
复制
var index = 0;

function readBlock() {
  var request = new XMLHttpRequest();
  request.open("GET", "http://lists.w3.org/");
  request.setRequestHeader("Range", "bytes=" + index + "-" + (index + 1023));
  request.addEventListener("load", function() {
    console.log(index, request.response.substring(0, 100) + " ...");
    index += 1024;
    if (index < 4 * 1024)
      readBlock();
  }, false);
  request.send();
}

readBlock();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8645897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档