HeaderEditor icon indicating copy to clipboard operation
HeaderEditor copied to clipboard

[Question]能否实现url解码?

Open lshilshi opened this issue 5 years ago • 7 comments

许多时候重定向请求后的地址是经过编码的url(比如google 的sorry页面、许多访问外部链接需二次跳转的页面……) 如果直接用正则$1/$N来作为结果,访问是无效的 试用自定义函数,好像也没成功

if (detail.type === 'main_frame' || detail.type === 'sub_frame') {
   return decodeURIComponent(val.replace(/\+/g, ' '));
}

请问是否可以实现重定向时候支持url解码,请给个示例参考,谢谢! 另外,自定义函数的val指的是请求头?有说明文档吗?

lshilshi avatar Jan 06 '21 04:01 lshilshi

  1. 对重定向默认自带解码。
  2. 插件内点击帮助,查看详细文档

sylingd avatar Jan 06 '21 04:01 sylingd

  1. 对重定向默认自带解码。
  2. 插件内点击帮助,查看详细文档

谢谢!

是吗?是最近几次的更新实现? 我记得此前用,重定向之后还是encodeURI的

lshilshi avatar Jan 06 '21 04:01 lshilshi

很久之前就加的功能了

sylingd avatar Jan 06 '21 04:01 sylingd

很久之前就加的功能了

刚才测试了一下,还是有些问题 举例说明

想实现新浪缩略图解码

http://s.img.mix.sina.com.cn/auto/crop?img=https%3A%2F%2Fn.sinaimg.cn%2Fent%2F4_img%2Fupload%2Fd411fbc6%2F748%2Fw773h775%2F20190813%2F121c-icapxph9029954.jpg&size=328_218

-->

https://n.sinaimg.cn/ent/4_img/upload/d411fbc6/748%2Fw773h775%2F20190813/121c-icapxph9029954.jpg

选择重定向 匹配规则

^https?://s\.img\.mix\.sina\.com\.cn/\S+img=(https?)?(:)?(//)?(\S+)(&size=.*)?

^https?://s\.img\.mix\.sina\.com\.cn/\S+img=(https?)?(:|%3A)?(//|%2F%2F)?(\S+)(&size=.*)?

重定向至

https://$4

在规则的测试中显示是可以匹配的,重定向结果还是未解码的 在浏览器地址栏测试 不开启规则,可以显示缩略图 开启规则,无相应,F12看了下network,status是canceled

lshilshi avatar Jan 07 '21 08:01 lshilshi

因为你已经带了https://,所以被认为是已经解码后的URL 只有以 任意字符%3A 开头的会被认为是需要解码的URL

sylingd avatar Jan 13 '21 01:01 sylingd

因为你已经带了https://,所以被认为是已经解码后的URL 只有以 任意字符%3A 开头的会被认为是需要解码的URL

你好!那上一情况,现在的HE可以实现跳转吗? 如可以,请告知如何实现?(现在是重写了自定义函数来实现的)

lshilshi avatar Jan 19 '21 07:01 lshilshi

https://www.google.com/url?q=https://github.com/nextcloud/docker/issues/1685%23issuecomment-1604378042&source=gmail&ust=1687617535345000&usg=AOvVaw2291YFKEi-4cyjx8k2SiJC

GMAIL里的地址就不能解码了。 自定义函数怎么写? 现在我是这样弄。 ^http(?:s?)://www\.google\.com/url\?q=(http(?:s?)://.*?)&.* $1

daiaji avatar Jun 23 '23 17:06 daiaji