每当您点击Google链接时,它会将您重定向到他们的网站,如下所示:
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0CCkQFjAB&url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FHI&ei=y8mSVJb3HYqlNqvBgIgM&usg=AFQjCNEWA_V3hjoVAu_W7mu3fbN6Q4n0Lw&sig2=dDRuO4YH9VIDXgQoZJH4tQ&bvm=bv.82001339,d.eXY
有没有办法使用JavaScript获取实际网址(http://en.wikipedia.org/wiki/HI
)?
答案 0 :(得分:3)
试试这个:
var googleUrl = "...";
var start = googleUrl.indexOf("&url=") + 5;
var end = googleUrl.indexOf("&", start)
var encodedUrl = googleUrl.substring(start, end);
//var encodedUrl = googleUrl.substr(start, end - start); //OK too
var url = decodeURIComponent(encodedUrl); //this what you want
首先提取已编码的网址然后对其进行解码非常重要,因为网址本身可能包含查询参数。想象一下如果它们与谷歌使用的那些冲突会发生什么。
谢谢,@詹姆斯唐纳利。我遗漏了unescape
已被弃用。
答案 1 :(得分:0)
您可以尝试如下:
var a = "https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0CCkQFjAB&url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FHI&ei=y8mSVJb3HYqlNqvBgIgM&usg=AFQjCNEWA_V3hjoVAu_W7mu3fbN6Q4n0Lw&sig2=dDRuO4YH9VIDXgQoZJH4tQ&bvm=bv.82001339,d.eXY";
var b = decodeURIComponent(a);
var p1 = b.indexOf("&url");
var p2 = b.indexOf("&ei");
var res = b.substring(p1+5, p2);
alert(res);
答案 2 :(得分:0)
直接执行此操作的方法是使用URLSearchParams:
const params = new URLSearchParams(url)
params.get('url') // "http://en.wikipedia.org/wiki/HI"