& -sign破坏了我的链接重写器

时间:2012-01-30 13:09:41

标签: javascript jquery userscripts

我目前正在编写在其他网站上运行的用户脚本。一个功能是重写链接,以便跳过一个登录页面。但是,如果链接中存在& -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

1 个答案:

答案 0 :(得分:1)

& entity内置于该网址中,因此除了替换它之外没有任何内容。

使用:

aLink = aLink.substring (38);
aLink = decodeURIComponent (aLink);
aLink = aLink.replace (/&/gi, "&");
$(this).attr ('href', aLink);