我目前正在編寫在另一個站點上運行的用戶腳本。一個功能是重寫鏈接,以便跳過一個登錄頁面。但是,如果鏈接中存在& -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
這是雙重編碼的,所以你也應該雙解碼。 – 2012-01-30 13:14:01
嘗試'decodeURI' – mgraph 2012-01-30 13:14:22
@Topener,你的意思是就像應用decodeURIComponent兩次? – 2012-01-30 13:34:13