2

我正在使用 window.location.href 重定向我的浏览器,但我不确定为什么一个有效而一个无效。当我使用相对链接时,它会刷新当前页面。当我使用完整的网址时,它会重定向。我所在的页面和 Process.aspx 页面位于同一目录级别。所以我应该能够有一个相对链接?当我这样做时,它只是重新加载我所在的当前页面。关于window.location.href,我缺少什么基本概念?

    $(document).ready(function() {

    $( "button" )
        .button();
    $("#cancel")
        .click(function( event ) {
            alert("click");

            //Below Line Doesn't work
            window.location.href = "/Process.aspx";

            //Below Line Does work
            window.location.href = "http://localhost:65215/Process.aspx";
    });
});
4

5 回答 5

6

来自Mozilla Developer Network 文档href是页面的整个 URL。该列表中唯一的相对属性是path,它与页面的主机或域相关。

您可能还想看看使用reloadorreplace方法。请参阅如何在 JavaScript/jQuery 中重定向到另一个网页?

于 2013-07-19T15:51:49.440 回答
2

有点边缘情况,但是如果您将事件侦听器添加到其中带有锚标记的容器 div,并且您希望使每个容器 div(而不仅仅是锚标记)可点击,然后重定向到其中包含的链接,也会出现此问题锚标记的href attribute. 在这种情况下,您希望包含event.preventDefault()以防止这种行为。

香草JS

document.getElementById("myAnchorDiv").addEventListener("click", function(event){
   event.preventDefault();

    //get url 
    URL = ...

   //Below Line should now work
   window.location.href = URL;
});

jQuery

$("#myAnchorDiv").on("click", function( event ) {
    event.preventDefault();

    //get url 
    URL = ...

    //Below Line should now work
    window.location.href = URL;

 });

如果你愿意,你当然可以将最后两行代码组合成一行代码,即类似window.location.href = [your URL];

于 2021-04-07T21:49:39.247 回答
1

尝试:location.href = location.origin + "/Process.aspx";

于 2013-07-19T15:55:40.990 回答
0

尝试这个:

window.location = window.location.protocol + 
                  '//' +
                  window.location.hostname +
                  window.location.pathname;
于 2015-01-08T19:55:46.020 回答
0

您可以尝试仅刷新页面的 hack,您可以实施onclick="location.href='wherever'"第二个href="/Process.aspx" onclick将首先被触发并href带您返回。

于 2014-06-03T16:43:55.013 回答