&-sign 正在毁掉我的链接重写器

发布于 2024-12-29 16:12:21 字数 868 浏览 0 评论 0原文

我目前正在编写在另一个站点上运行的用户脚本。一项功能是重写链接,以便您跳过一个登陆页面。但是,如果链接中存在 & 符号,我的函数会将其输出为 & 而不是 &

        $('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

I'm currently writing a userscript that runs on another site. One function is to rewrite the links so you skip one landing page. However, if the &-sign exists in the link, my function will output it as & instead of &.

        $('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));
            }

        }
    });

This is one example of a link that gets ruined:

 https://www.site.com/exit.php?u=http%3A%2F%2Fsverigesradio.se%2Fsida%2Fartikel.aspx%3Fprogramid%3D104%26amp%3Bartikel%3D3406950

Is a link to:

 http://sverigesradio.se/sida/artikel.aspx?programid=104&artikel=3406950

But becomes this instead:

 http://sverigesradio.se/sida/artikel.aspx?programid=104&artikel=3406950

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

各自安好 2025-01-05 16:12:21

& 实体 直接内置到该 URL 中,所以除了替换它之外没有什么办法。

使用:

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

The & entity is built right into that URL, so there's nothing for it except to just replace it.

Use:

aLink = aLink.substring (38);
aLink = decodeURIComponent (aLink);
aLink = aLink.replace (/&/gi, "&");
$(this).attr ('href', aLink);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文