14. december 2005 - 10:11
Der er
1 kommentar og
1 løsning
Basal javascript - om funktioner
Jeg er rutineret i PHP, men har egentlig altid bevæget mig uden om javascript, men er begyndt at kigge lidt på det nu :-)
Jeg har set nogle funktioner, hvor man kan toggle hide/unhide til/fra. Problemet er, at når man refresher sin browser så vil den komme tilbage til sin default-værdi (fx. unhidden).
Min tanke var at koble cookies på (hvis der findes en bedre måde - sig endelig til!)
Her har jeg så lavet flg. funktion
function toogle_cookie(name, val)
{
delete_cookie(name)
if(val == "True")
{
set_cookie(name, "False")
var test = "1";
}
else
{
set_cookie(name, "True")
var test = "2";
}
document.write(test);
}
<script type="text/javascript">
var CookieVal = get_cookie(CookieName)
document.write(CookieVal);
</script>
<a href="#" onClick="toogle_cookie(CookieName, CookieVal);">toggle</a></span><br /><br />
Mit problem er, at når jeg i funktionen har document.write så skifter: document.write(CookieVal); fra false->true->false, etc.... Hvis jeg IKKE har document.write så skifter værdien ikke.
Meningen er så herefter at koble hide/unhide på - på baggrund af true/false (er dette en OK måde at gøre det på?)
Hvis der er noget helt har misforstået sig gerne til, og er der nogle gode steder at lære javascript så skriv endelig et par links ned :-)
ps.
Her ud over er der en række andre cookie-funktioner som lige nu egentlig virker ok :-)
Jeg ser frem til at høre fra jer :-)
15. december 2005 - 00:02
#1
Jeg fandt en løsningen, der GARANTERET kan forbedres, men hvis andre har et lignende problem - så er der en mulig løsning her :-)
15. december 2005 - 00:02
#2
<html>
<head>
<!-- <script type="text/javascript" src="Javascript.js"></script> -->
<style type="text/css">
.expand { position: absolute; visibility: hidden; }
.collapse { position: relative; visibility: visible; }
</style>
<script type="text/javascript" language="javascript">
function toogle_cookie(name, val)
{
delete_cookie(name);
if(val == "True")
{
set_cookie(name, "False")
}
else
{
set_cookie(name, "True")
}
}
// Setting cookies
function set_cookie(name, value, exp_y, exp_m, exp_d, path, domain, secure)
{
var cookie_string = name + "=" + escape ( value );
if (exp_y) //delete_cookie(name)
{
var expires = new Date ( exp_y, exp_m, exp_d );
cookie_string += "; expires=" + expires.toGMTString();
}
if(path)
{
cookie_string += "; path=" + escape ( path );
}
if(domain)
{
cookie_string += "; domain=" + escape ( domain );
}
if(secure)
{
cookie_string += "; secure";
}
document.cookie = cookie_string;
}
// Retrieving cookies
function get_cookie(cookie_name)
{
var results = document.cookie.match(cookie_name + '=(.*?)(;|$)');
if(results)
{
return (unescape(results[1]));
}
else
{
return null;
}
}
// Delete cookies
function delete_cookie(cookie_name)
{
var cookie_date = new Date(); // current date & time
cookie_date.setTime(cookie_date.getTime()-1);
document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}
var CookieName = 'MyName1'
var CookieVal = get_cookie(CookieName);
if(CookieVal == "Open")
{
var tableToggle = true;
}
else
{
var tableToggle = false;
}
function toggletable(IdName, CookieName)
{
var temp = document.getElementById(IdName);
if(tableToggle)
{
tableToggle = false;
temp.style.position = 'absolute';
temp.style.visibility = 'hidden';
delete_cookie(CookieName);
set_cookie(CookieName, 'Closed');
}
else
{
tableToggle = true;
temp.style.position = 'relative';
temp.style.visibility = 'visible';
delete_cookie(CookieName);
set_cookie(CookieName, 'Open');
}
}
</script>
</head>
<body>
<br>
<table bgcolor="#FFCC99" width="600" cellspacing=0 border=0>
<tr>
<td>
<p><a href="java script:toggletable('thistable', CookieName);">toggle a table visible/invisible</a>
</td>
</tr>
</table>
<div>
<script type="text/javascript">
var CookieVal = get_cookie('MyName1');
if(CookieVal == "Open")
{
var Show = "<table bgcolor='#FFFFCC' width='300' cellspacing=0 border=0 id='thistable' class='collapse'><tr><td><b>Toggle Table:</b><br> Here is the content of a table which hides and shows.</td></tr></table>";
}
if(CookieVal == "Closed")
{
var Show = "<table bgcolor='#FFFFCC' width='300' cellspacing=0 border=0 id='thistable' class='expand'><tr><td><b>Toggle Table:</b><br> Here is the content of a table which hides and shows.</td></tr></table>";
}
document.write(Show);
</script>
</div>
<table bgcolor="#FFCC99" width="600" cellspacing=0 border=0>
<tr>
<td>
<p>Filler
</td>
</tr>
</table>
</body>
</html>