我正在尝试编写一个Service Worker来缓存我的网页的一部分,但是我需要每个请求的来源和路径来决定如何处理它。不幸的是,Request对象只有完整的URL作为字符串,我找不到任何解析它的方法。
URL解析是一个复杂且容易出错的过程,因此我希望尽可能使用本机功能,但我可以找到解析Javascript中URL的唯一方法是滥用DOM <a>
元素,显然不是服务工作者上下文中的选项。我该怎么办?
答案 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中使用,所以它应该是好的。