Javascript 在位置更改时重写URL

Javascript 在位置更改时重写URL,javascript,jquery,mod-rewrite,Javascript,Jquery,Mod Rewrite,我正在寻找一种方法,当用户想要更改页面时,重写该位置的URL。那么,假设你有这样的东西: <body> <a href="http://example.com" /> </body> 是否有一种方法可以捕捉URL更改的时刻,并在更改位置之前实际修改该URL,例如,我想将href更改为相对链接,如\http://example.com和重定向页面实际上在那里。如果您只想捕获链接,然后对其进行修改,那么是的,这非常简单 $("a").on("click"

我正在寻找一种方法,当用户想要更改页面时,重写该位置的URL。那么,假设你有这样的东西:

<body>
  <a href="http://example.com" />
</body>


是否有一种方法可以捕捉URL更改的时刻,并在更改位置之前实际修改该URL,例如,我想将href更改为相对链接,如
\http://example.com
和重定向页面实际上在那里。

如果您只想捕获链接,然后对其进行修改,那么是的,这非常简单

$("a").on("click", function(e) {
    e.preventDefault(); // stops the link doing its default thing
    window.location.href = "something/" + $(this).attr("href");
});
显然,您需要修改更改位置的行,以便根据需要修改href值。我还建议给链接一个类,并选择它们,因为上面的代码会影响页面上的每个链接

最后,这将需要在加载DOM后运行,因此可以将其包装在您选择的
document.ready
处理程序中,或者将其放入正文底部的脚本中。

你可以在这里工作。您还需要在htaccess中使用urlrewrite才能正常工作

$(function () {
    $('.buttonn').on('click', function (e) {
        var seperator = (window.location.href.indexOf("?") === -1) ? "?" : "&";
        if (window.location.href.indexOf("s1") === -1 && window.location.href.indexOf("s2") != -1) {
            window.location.href = window.location.href.replace(/&?s2=([^&]$|[^&]*)/i, "&s1=s1");
        } else if (window.location.href.indexOf("s1") != -1) {
            window.location.href = window.location.href.replace(/&?s1=([^&]$|[^&]*)/i, "&s1=s1");
        } else {

            window.location.href = window.location.href + seperator + "s1=s1";
        }
    });

});

$(function () {
    $('.buttono').on('click', function (e) {
        var seperator = (window.location.href.indexOf("?") === -1) ? "?" : "&";
        if (window.location.href.indexOf("s2") === -1 && window.location.href.indexOf("s1") != -1) {
            window.location.href = window.location.href.replace(/&?s1=([^&]$|[^&]*)/i, "&s2=s2");
        } else if (window.location.href.indexOf("s2") != -1) {
            window.location.href = window.location.href.replace(/&?s2=([^&]$|[^&]*)/i, "&s2=s2");
        } else {
            window.location.href = window.location.href + seperator + "s2=s2";
        }
    });
});

对不起,我不清楚。实际上,我需要在document.location发生更改时进行检测,这不仅包括元素,还包括手动javascript。onbeforeunload事件的处理程序将检测到位置更改,但我不知道如何获取URL,您对此有什么想法吗?在这种情况下,没有。我不知道任何方法(使用Javascript)每次都在没有确认框的情况下更改目标URL(使用onbeforeunload)。似乎无法完成。无论如何,谢谢你,这段代码也会帮助我。很高兴我能帮上忙:)