我在我的网站中使用masterpages来更改网站中的网址。我使用导航栏的<a>
使用href
中的网址完全更改/重新加载到我的母版页中嵌入的网络表单。
在使用UpdatePanels
在网站上执行某些ajax后,我无法停止尝试使用pushState
。
我在互联网上做了一些研究,并且这样做:
$("a[data-role='ajax']").click(function (e) {
if (Modernizr.history) {
e.preventDefault();
var pageName = $(this).attr("href");
window.history.pushState(null, "", pageName);
navigateToPage();
}
});
我真的对网址进行了更改,并且在主页内容页面中实现了更多代码,我将div
置于其中,并使用其他页面中的新内容动态加载它。作为一种简单的方法,我有:
Home.aspx
<head runat="server">
<title></title>
</head>
<body>
<h1>Home</h1>
<ul>
<li><a href="home.aspx" data-role="ajax">Home</a></li>
<li><a href="page1.aspx" data-role=
"ajax">Page 1</a></li>
</ul>
<form id="form1" runat="server">
<div id="content-host" class="fragment">
Home
</div>
</form>
<script src="modernizr-custom.js"></script>
<script src="jquery.min.js"></script>
<script src="script.js"></script>
</body>
</html>
Page1.aspx的
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<h1>Home</h1>
<ul>
<li><a href="home.aspx" data-role="ajax">Home</a></li>
<li><a href="page1.aspx" data-role=
"ajax">Page 1</a></li>
</ul>
<form id="form1" runat="server">
<div id="content-host" class="fragment">
page 1
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</div>
</form>
<script src="modernizr-custom.js"></script>
<script src="jquery.min.js"></script>
<script src="script.js"></script>
</body>
</html>
点击a
脚本会更改包含pushState
的网址,并更改div
“竞赛主机”上的新信息。
Basicaly导航到 page1.aspx 时,网址更改为 page1.aspx ,而div显示文本框,但我的问题是当我点击文本框时然后输入一些文字然后输入它回到 home.aspx 。我注意到,如果我转到 page1.aspx 并在页面重新加载的网址中输入,则回发上的文本框不会使页面返回 home.aspx 。
我不是ASP的专家。这种情况我认为没有办法保留下一页并且在没有完全重新加载的情况下执行类似textchangedevent
的操作,但无论如何我要问,是否可能。