我有这个页面,Default.aspx作为“master”工作,并使用jQuery的load()
函数加载子页面。像这样:
<ul id="navigation>
<li><a href="Item1.aspx"> Item 1</a></li>
<li><a href="Item2.aspx"> Item 2</a></li>
</ul>
<div id="contend">
<!-- Ajax loaded pages goes here -->
</div>
<div id="footer">
</div>
问题是:当用户点击某个项目时,让我们说,选择在新窗口(选项卡)上打开,他显然会看到该页面中的项目,而不是导航,页脚和其他任何内容默认页面......
我正在寻找解决方法..
可能通过网址控制锚点?比如#item1
答案 0 :(得分:2)
使用ajax发送附加参数。因此,您可以确定请求是否由ajax发出,并选择如何构建响应。
请求示例:
<script type="text/javascript">
$(
function()
{
$('#navigation a')
.click(
function(e)
{
e.preventDefault();
$('#contend').load(this.href,{'isAjaxRequest':true});
}
);
}
);
</script>
如果用户按常规方式点击链接,也会发送一个名为“isAjaxRequest”的POST参数,你可以检查这个参数,如果存在,只输出#contend的片段,否则全部页面包括页眉,页脚等。