Sådan ser IE koden i hvert fald ud (du kan vel selv se hvor den skal ind) Jeg har desværre ikke så meget forstand på Netscape koden, men går ud fra den skal se ca. sådan ud:
hmm... om igen - du sagde hvis siden reloades, ikke hvis man skifter side... så er der kun én ting at gøre... *tadaaa!* COOKIES :)
Husk dog at hvis en bruger har slået cookies fra på sin browser, vil det ikke virke. Det kan du teste for med navigator-collection'en.
Du får lige 2 funktioner jeg har skrevet... er rimelig sikker på de stadig virker selvom de er lidt gamle.
function setCookie(item, value) { if (!item) alert("setCookie error:\n\nNo item!"); document.cookie = item + "=" + value + ";"; }
function getCookie(item) { if (!item) alert("getCookie error:\n\nNo item!"); var start = document.cookie.indexOf(item + "=") + item.length + 1; if (start < 0) // cookie was not found return ""; var end = document.cookie.indexOf(";", start); if (end < 0) end = document.cookie.length; return document.cookie.substring(start, end); }
Sæt disse to funktioner ind i dit dokument, og så kan du sætte og hente værdien. F.eks. kan du nederst i din executeCheck-funktion skrive:
setCookie("count", count);
og så uden for funktionen (så det bliver udført før alt andet) skrive
// vi sætter lige counter til at være noget var counter = getCookie("count"); // og lige være sikker på at den er et tal, for at undgå fejl if isNaN(counter) counter = 0;
var max = 20; function executeCheck( element ){ if( element.checked ){ if (counter >= max) { alert("Du må kun afkrydse 20 navne!"); element.checked = false; return; } str = "Antal navne: " + (++counter); } else { str ="Antal navne: " + (--counter); } if(document.layers) { window.parent.frames["framenavn"].document.layers["count"].document.open(); window.parent.frames["framenavn"].document.layers["count"].document.write(str); window.parent.frames["framenavn"].document.layers["count"].document.close(); } else if(document.all) { window.parent.frames["framenavn"].document.all["count"].innerHTML = str; } else { window.parent.frames["framenavn"].document.getElementById("count").innerHTML = str;
setCookie("count", counter); } }
function setCookie(item, value) { if (!item) alert("setCookie error:\n\nNo item!"); document.cookie = item + "=" + value + ";"; }
function getCookie(item) { if (!item) alert("getCookie error:\n\nNo item!"); var start = document.cookie.indexOf(item + "=") + item.length + 1; if (start < 0) // cookie was not found return ""; var end = document.cookie.indexOf(";", start); if (end < 0) end = document.cookie.length; return document.cookie.substring(start, end); }
</script>
Jeg har ikke testet det, så sig til hvis det ikke virker...
.. nårh, du mener HELE cookien? ikke kun en enkelt værdi..
Det kan man ikke... Men man kan sætte cookien's udløbsdato.
Jeg er dog løbet ind i nogle problemer med det på nyere versioner af IE, så jeg ved ikke helt... jeg tror bare man må indse at den bliver liggende til browseren finder på at slette den igen.
Nej men du får 30 point for din hjælpsomhed. Har fundet en anden løsning... Men ellers tusind tak for hjælpen...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.