我使用 jQuery 构建了一个简单的模式,它接受一个 url,然后使用 ajax 方法加载它,并将响应 html 插入到我在模式框设计中显示在屏幕上的 div 中。简单的东西!
然而,这些页面是实际的 url,例如domain.com/posts/add
,可以通过浏览器直接访问,而不仅仅是单击应用程序中的链接。即使用户在地址栏中键入 url,我也希望它们始终以模式显示。目前我这样做是为了如果请求不是 Ajax 则将它们重定向到主页或显示 404 以防止这种情况发生。
如果用户直接通过 HTTP 访问它们,我更愿意在模式中加载这些页面,就像 Chrome 商店那样,例如https://chrome.google.com/webstore/detail/pjkljhegncpnkpknbcohdijeoejaedia
我该怎么做呢?无需做一些非常混乱的javascript?任何想法或建议将不胜感激。请注意,这应该像一个适当的应用程序一样工作,因为它允许用户使用来回按钮,并且模式应该出现和消失
至于我使用的模态代码......
它真的很简单,这是它的外观示例(注意我的比这更健壮,代码纯粹是为了简单起见)
$('.ajax-link').click(function(e){
e.preventDefault;
$.ajax({
url: $(this).attr('href'),
success: function(response) {
$('<div id="modal">' + response + '</div>').appendTo('body');
}
});
});