Próbuję usunąć kodowanie URI z linku, ale decodeURI nie działa w pełni.decodeURI nie działa w pełni
Mój przykład link jest poniżej: /linkout?remoteUrl=http%253a%252f%252fsandbox.yoyogames.com%252fgames%252f171985-h-a-m-heroic-armies-marching
Po uruchomieniu skryptu JavaScript, wygląda to tak:
http%3a%2f%2fsandbox.yoyogames.com%2fgames%2f171985-h-a-m-heroic-armies-marching
Jak mogę pozbyć się pozostałych nie poprawnych kodów w URI?
Mój kod dekodowania:
var href = $(this).attr('href'); // get the href
var href = decodeURI(href.substring(19)); // remove the outgoing part and remove the escaping
$(this).attr('href', 'http://'+href) // change link on page
użyj zamiast tego decodeURIComponent() – dano
Proszę również zauważyć, że konstruowanie obiektu "$ (this)" dwukrotnie w jednym przebiegu wejściowym nie jest dobrym pomysłem, więc buforuj go raz na początku funkcji i używając buforowanego obiektu gdy jest to wymagane. –
'$ (this) .attr ('href')' jest po prostu dłuższym, wolniejszym sposobem napisania 'this.href'. – RobG