根据URL

时间:2018-03-23 17:29:16

标签: javascript jquery ajax get

我正在使用自己的网址加载内容,并且运行良好。但我遇到的问题是,当我在浏览器栏中输入网址时,它会直接链接到网址页面,但我想留在(在主页上)并且项目的叠加层应该淡入。

我用window.location.href尝试了它,但它完全杀了我的功能。 (当涉及到ajax的东西时,我也是新手)

我的代码

//AJAX Function to fetch project content

var url = $('.load').data('url');

function openUrlInModal(url, target){
    $.ajax({
        url: url,
        type: "GET",
        dataType: "html",
        contentType: "text/html",
        cache: false,
        success: function(url) {
            $(target).append(url).addClass('modal');
            $('.modal').fadeIn('fast');
            console.log("target:" + target);
            console.log("url:" + url);
        }
    });
}

// Adds content to the modal on click

$('.load').bind('click', function(e) {

    var target = $(this).data("target");

    //History Pushstate
    fetchedProjectUrl = $(this).attr("href");
    history.pushState(null, null, fetchedProjectUrl);

    //Call Ajax Function
    openUrlInModal($(this).attr('href'), target);

    e.preventDefault();
});


//Hitting Back Button

$(window).on("popstate", function(){

    history.pushState(null, null, "");

    $('.modal').fadeOut('fast');
    function empty(){
        $('.modal').empty();
    }
    setTimeout(empty, 300);
});

感谢您提前提供任何帮助:)

1 个答案:

答案 0 :(得分:0)

我不明白模态的URL来自哪里。如果您想停止浏览器转到浏览器栏中提示的URL然后执行 - 由于安全原因和浏览器的无意识编程,这是不可能的。在这个意义上,你必须编写一个自己的浏览器,而不管你的浏览器应该做什么。

如果网址是一种动态网址,您必须在模式中使用新窗口引用,例如iframe,而不是为其执行单独的位置。

否则只会在你的模态innerHTML中粘贴response-html