次のコードは、更新パネルがなくても機能しますが、更新パネルがある場合は実行されません。その目的は、戻るまたは進むブラウザのプレスからのページ エントリで bfcache をクリアすることです。ユーザーが前後にヒットし、ページに更新パネルがあるときにjsを実行する方法を知っている人はいますか?
window.onpageshow = 関数 (イベント) { if (event.persisted) { window.location.reload() } };
更新パネルを含む全ページ:
<body>
<form id="form1" runat="server">
<ajaxToolkit:ToolkitScriptManager runat="server" ID="ToolkitScriptManager" />
<asp:UpdatePanel ID="updatePanel1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<script type="text/javascript">
var js = "window.onpageshow = function (event) { if (event.persisted) { window.location.reload() } };";
Sys.Application.add_load(js);
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(js);
prm.add_beginRequest(js);
</script>
<a href='Default.aspx'>Default</a>
<a href='Default2.aspx'>Default2</a>
<a href='Default3.aspx'>Default3</a>
<a href='Default4.aspx'>Default4</a>
<br />
<div>
<asp:TextBox ID="tbText" runat="server"></asp:TextBox>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</form>
試み #2
<body>
<script type="text/javascript">
window.onpageshow = function (event) { if (event.persisted) { window.location.reload() } };
</script>
<form id="form1" runat="server">
<ajaxToolkit:ToolkitScriptManager runat="server" ID="ToolkitScriptManager" />
<asp:UpdatePanel ID="updatePanel1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<a href='Default.aspx'>Default</a>
<a href='Default2.aspx'>Default2</a>
<a href='Default3.aspx'>Default3</a>
<a href='Default4.aspx'>Default4</a>
<br />
<div>
<asp:TextBox ID="tbText" runat="server"></asp:TextBox>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</form>
試み #3
<body>
<form id="form1" runat="server">
<ajaxToolkit:ToolkitScriptManager runat="server" ID="ToolkitScriptManager" />
<asp:UpdatePanel ID="updatePanel1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<script type="text/javascript">
var js = window.onpageshow = function (event) { if (event.persisted) { window.location.reload() } };;
Sys.Application.add_load(js);
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(js);
prm.add_beginRequest(js);
</script>
<a href='Default.aspx'>Default</a>
<a href='Default2.aspx'>Default2</a>
<a href='Default3.aspx'>Default3</a>
<a href='Default4.aspx'>Default4</a>
<br />
<div>
<asp:TextBox ID="tbText" runat="server"></asp:TextBox>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</form>