В настоящее время я пишу usercript, который работает на другом сайте. Одна из функций - переписать ссылки, чтобы вы пропустили одну целевую страницу. Однако, если в ссылке существует & -sign, моя функция выведет ее как &
вместо &
.& -sign разрушает мою ссылку-переписывающий
$('a').each(function(index) {
var aLink = $(this).attr('href');
if(aLink) {
if(aLink.indexOf("leave.php?u=") > 0) {
aLink = aLink.substring(38);
$(this).attr('href', decodeURIComponent(aLink));
}
}
});
Это один пример ссылки, которая получает разрушен:
https://www.site.com/exit.php?u=http%3A%2F%2Fsverigesradio.se%2Fsida%2Fartikel.aspx%3Fprogramid%3D104%26amp%3Bartikel%3D3406950
Есть ссылка:
http://sverigesradio.se/sida/artikel.aspx?programid=104&artikel=3406950
Но становится вместо этого:
http://sverigesradio.se/sida/artikel.aspx?programid=104&artikel=3406950
Это двойная кодированный, так что вы должны также дважды расшифровывает его. –
try 'decodeURI' – mgraph
@Topener, вы имеете в виду, что просто примените decodeURIComponent дважды? –