如何解析服务工作者中的URL

时间:2016-11-04 01:57:01

标签: javascript service-worker

我正在尝试编写一个Service Worker来缓存我的网页的一部分,但是我需要每个请求的来源和路径来决定如何处理它。不幸的是,Request对象只有完整的URL作为字符串,我找不到任何解析它的方法。

URL解析是一个复杂且容易出错的过程,因此我希望尽可能使用本机功能,但我可以找到解析Javascript中URL的唯一方法是滥用DOM <a>元素,显然不是服务工作者上下文中的选项。我该怎么办?

1 个答案:

答案 0 :(得分:2)

您可以使用URL API
它使您能够从字符串创建新的URL对象并使用组件:

var a = new URL('http://www.domain.com/asdf/?a=b#123');
console.log(a)

a.searchParams.forEach(function(val, key){
  console.log(key + ' ' + val);
});

这是一个实验性API,但它可以在Web Workers中使用,所以它应该是好的。