私は現在、別のサイトで動作するuserscriptを書いています。 1つの機能はリンクを書き換えて1つのリンク先ページをスキップすることです。ただし、& -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
、それはまた、二重デコードそれは二重のエンコードであるので、あなたがすべき。 –
'decodeURI'を試してください – mgraph
@Topener、あなたはdecodeURIComponentを2回適用するだけですか? –