Javascript window.location.href - 刷新页面而不是重定向

时间:2013-07-19 15:47:42

标签: javascript redirect browser

我正在使用window.location.href来重定向我的浏览器,我不确定为什么一个有效,一个没有。当我使用相对链接时,它会刷新当前页面。当我使用完整的URL时,它会重定向。我所在的页面和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";
    });
});

5 个答案:

答案 0 :(得分:5)

Mozilla Developer Network documentation开始,href是该网页的完整网址。该列表中唯一的相对属性是path,它相对于主机或页面域。

您可能还想查看使用reloadreplace方法。见How to redirect to another webpage in JavaScript/jQuery?

答案 1 :(得分:1)

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

答案 2 :(得分:0)

你可以尝试只刷新页面的黑客,你可以实现onclick="location.href='wherever'",第一个href="/Process.aspx" onclick将被解雇,href会带你回来。

答案 3 :(得分:0)

试试这个:

window.location = window.location.protocol + 
                  '//' +
                  window.location.hostname +
                  window.location.pathname;

答案 4 :(得分:0)

有点边缘情况,但如果您将事件侦听器添加到其中包含锚标记的容器 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];