Javascript 页面转换,取决于URL

Javascript 页面转换,取决于URL,javascript,jquery,css,Javascript,Jquery,Css,在转到URL的目标之前,此代码会淡出每个页面。但是,在某些情况下,用户不转到新页面,而是转到浏览器中的PDF,或者打开默认邮件应用程序。在Safari上,如果你转到一个外部站点(www.twitter.com)并按下后退按钮,那么.wrapper仍然会淡出。(也许是缓存的东西?) 是否可以: 淡出,仅当URL不包含“PDF,mailto”或是外部链接时 经过一定时间后淡入(淡出,但几秒钟后又淡入,以防是PDF/mailto) 试试这个: function fadeAndGo(x) {

在转到URL的目标之前,此代码会淡出每个页面。但是,在某些情况下,用户不转到新页面,而是转到浏览器中的PDF,或者打开默认邮件应用程序。在Safari上,如果你转到一个外部站点(www.twitter.com)并按下后退按钮,那么
.wrapper
仍然会淡出。(也许是缓存的东西?)

是否可以:

  • 淡出,仅当URL不包含“PDF,mailto”或是外部链接时
  • 经过一定时间后淡入(淡出,但几秒钟后又淡入,以防是PDF/mailto)
试试这个:

function fadeAndGo(x) {
    $(x).click(function (e) {
        e.preventDefault();
        var href = $(this).attr("href");
        if (!/PDF|mailto/gi.test(href)) {
            $('.wrapper').fadeOut(function () {
                window.location = href;
            }).delay(2000).fadeIn();
        } else {
             window.location = href;
        }
    });
}

fadeAndGo('a');

谢谢有没有一种合乎逻辑的方式让它在2秒后淡入?当我试着打开.delay(2000)时,它就不再离开了。
function fadeAndGo(x) {
    $(x).click(function (e) {
        e.preventDefault();
        var href = $(this).attr("href");
        if (!/PDF|mailto/gi.test(href)) {
            $('.wrapper').fadeOut(function () {
                window.location = href;
            }).delay(2000).fadeIn();
        } else {
             window.location = href;
        }
    });
}

fadeAndGo('a');