我正在使用自己的网址加载内容,并且运行良好。但我遇到的问题是,当我在浏览器栏中输入网址时,它会直接链接到网址页面,但我想留在(在主页上)并且项目的叠加层应该淡入。
我用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);
});
感谢您提前提供任何帮助:)
答案 0 :(得分:0)
我不明白模态的URL来自哪里。如果您想停止浏览器转到浏览器栏中提示的URL然后执行 - 由于安全原因和浏览器的无意识编程,这是不可能的。在这个意义上,你必须编写一个自己的浏览器,而不管你的浏览器应该做什么。
如果网址是一种动态网址,您必须在模式中使用新窗口引用,例如iframe,而不是为其执行单独的位置。
否则只会在你的模态innerHTML中粘贴response-html