由JQuery重定向到另一个页面

时间:2012-09-13 13:40:04

标签: javascript jquery

我在我的网站上使用了jquery-1.8.0.min.js,我需要在某些情况下进行重定向。

我试过这个:

$('<div></div>').appendTo('body')
    .html('<div><h4>Some text....</h4></div>')
    .dialog({
        modal: true,
        title: 'Dialog title...',
        zIndex: 10000,
        autoOpen: true,
        width: 'auto',
        resizable: false,
        draggable: false,
        buttons: {
            Ok: function () {
                $(this).dialog("close");
                var loc = window.location;
                var currentURL = loc.protocol + '//' + loc.host + loc.pathname;

                var newUrl = loc.protocol + '//' + loc.host + 'Account/LogOn?ReturnUrl=' + urlencode(currentURL);
                $('<div style="dispaly:none;"></div>').appendTo('<body>').html('<a id="loginredirect" href="' + newUrl + ' "><br /></a>');
                $('#loginredirect').click();
            }
        },
        close: function (event, ui) {
            $(this).remove();
        }
    });

但这不起作用:-( 所以我试试这个:

$('<div></div>').appendTo('body')
    .html('<div><h4>Some text....</h4></div>')
    .dialog({
        modal: true,
        title: 'Dialog title...',
        zIndex: 10000,
        autoOpen: true,
        width: 'auto',
        resizable: false,
        draggable: false,
        buttons: {
            Ok: function () {
                $(this).dialog("close");
                var loc = window.location;
                var currentURL = loc.protocol + '//' + loc.host + loc.pathname;

                var newUrl = loc.protocol + '//' + loc.host + 'Account/LogOn?ReturnUrl=' + urlencode(currentURL);
                $(window.location).attr('href', newUrl);
            }
        },
        close: function (event, ui) {
            $(this).remove();
        }
    });

但这也不起作用......

知道问题在哪里?

由于

编辑1: 如果我正在尝试window.location.hrej = newUrl,FF ErrorConsole告诉我这个: NS_ERROR_MALFORMED_URI:组件返回失败代码:0x804b000a(NS_ERROR_MALFORMED_URI)[nsIDOMLocation.href]  在localhost / Content / scripts / jquery-1.8.0.min.js

并且浏览器不会在IE,FF和Chrome中重定向到newUrl ......

3 个答案:

答案 0 :(得分:5)

你不需要jquery,只需尝试,

window.location.href = new_url;

答案 1 :(得分:1)

在第二个示例中,替换此行:

$(window.location).attr('href', newUrl);

这个

window.location.href = newUrl;

应该做你想做的事。

答案 2 :(得分:1)

newURL/

之后缺少尾随loc.host
var newUrl = loc.protocol + '//' + loc.host + 'Account/LogOn?ReturnUrl=' + urlencode(currentURL);
window.location.href = newUrl;