Hur gör jag för behålla staten när användaren klickar på back i webläsaren när jag använder Ajax onload.
exempel, kunden går in på söksidan. söker... sökresultat hämtas via ajax. klickar på ett sökresultat och kommer till artikelutmatningen. klickar han back så vill jag att söket ska visas, det gör det ju inte av förklarliga själ... Nån ide?
Ja du, har kollat hur snubben gör och förenklat det så att man ska se konceptet enklare. (jag använder inte updatepanel utan anropar webservice:ar) Han använder en gömd iframe och att kunna bläddra och sen använder hashen på querystringen... see for yourself...
bifogar lite html... PS, gör en history.aspx där ni sätter Titel till Querystring så blir det fint...
För att det ska funka i FF så behöver man inte använda iframen. där använder han setTimeout för att kolla om Hashen är ändrad varge 100del... bara att jobba vidare
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>AjaxHistoryState</title>
</head>
<body>
<script language="javascript" type="text/javascript">
currentState = "";
function sok(val, triggatFranHistory){
document.getElementById("result").innerHTML = "sökning på: <a href=\"ensida.aspx\">"+val+"</a>";
if (!triggatFranHistory && (window.navigator.userAgent.indexOf('MSIE') > -1))
document.getElementById("__historyFrame").src = "history.aspx?"+val;
window.location.hash = '#'+val;
currentState = val;
}
function kollaOnLoad(){
state = window.location.hash.replace("#","");
if (state!==""){
if (currentState!=state)
sok(state, true);
}
currentState = state;
if (window.navigator.userAgent.indexOf('MSIE') < 0) {
setTimeout("kollaOnLoad()",100);
}
}
function historyTriggat(frame){
var entry = frame.contentWindow.location.search;
if ((entry.length >= 1) && (entry.charAt(0) === '?')) {
sok(entry.substr(1), true);
}
}</script>
<form id="form1" runat="server">
<div>
Sök här va:<input type="text" id="soket" value="" />
<input type="button" value="sök" onclick="sok(document.getElementById('soket').value,false)" />
<span id="result"></span>
<script>kollaOnLoad()</script>
<iframe id="__historyFrame" src="about:blank" onload="historyTriggat(this)" style="display:none;"></iframe>
</div>
</form>
</body>
</html>
318 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25