PDA

Volledige versie bekijken : Switchcontent-menu


BlackAdder
%Europe/Berlin %656 %2005, 16:44
Hai,

Ik ben bezig met een site waarbij ik gebruik maak van een javascript waarbij content 'switchable' is. Ik doe dit op onderstaande manier.
<script="Javascript" type="text/javascript">

var enablepersist="on" //Enable saving state of content structure? (on/off)
if (document.getElementById){
document.write('<style type="text/css">')
document.write('.switchcontent{display:none;}')
document.write('</style>')
}
function getElementbyClass(classname){
ccollect=new Array()
var inc=0
var alltags=document.all? document.all : document.getElementsByTagName("*")
for (i=0; i<alltags.length; i++){
if (alltags[i].className==classname)
ccollect[inc++]=alltags[i]
}
}
function contractcontent(omit){
var inc=0
while (ccollect[inc]){
if (ccollect[inc].id!=omit)
ccollect[inc].style.display="none"
inc++
}
}
function expandcontent(cid){
if (typeof ccollect!="undefined"){
contractcontent(cid)
document.getElementById(cid).style.display=(docume nt.getElementById(cid).style.display!="block")? "block" : "none"
selectedItem=cid+"|"+document.getElementById(cid).style.display
}
}
function revivecontent(){
selectedItem=getselectedItem()
selectedComponents=selectedItem.split("|")
contractcontent(selectedComponents[0])
document.getElementById(selectedComponents[0]).style.display=selectedComponents[1]
}
function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(off set, end))
}
}
return returnvalue;
}
function getselectedItem(){
if (get_cookie(window.location.pathname) != ""){
selectedItem=get_cookie(window.location.pathname)
return selectedItem
}
else
return ""
}
function saveswitchstate(){
if (typeof selectedItem!="undefined")
document.cookie=window.location.pathname+"="+selectedItem
}
function do_onload(){
getElementbyClass("switchcontent")
if (enablepersist=="on" && getselectedItem()!="")
revivecontent()
}
if (window.addEventListener)
window.addEventListener("load", do_onload, false)
else if (window.attachEvent)
window.attachEvent("onload", do_onload)
else if (document.getElementById)
window.onload=do_onload
if (enablepersist=="on" && document.getElementById)
window.onunload=saveswitchstate

</script>
de HTML code:
<!-- Expandable content1 start -->

<span onClick="expandcontent('content1')" style="cursor:hand; cursor:pointer"><span class="productindex_list"><font color="##bda77e">Voorbeeld</font></span></span>
<div id="content1" class="switchcontent">
<table border="0" width="150" cellpadding="0" cellspacing="0">
<tr><td>
<div class="table_productindex">

</div>
<a href="" class="productindex_list">voorbeeldlink</a>
</td></tr></table>
</div>

<!-- Expandable content1 end -->
Stel nu dat ik 3 van deze bovenstaande contentboxen op een pagina heb, waarvan ik met PHP wil regelen of bijvoorbeeld box 1,2 of 3 al open staat wanneer de pagina wordt bekeken. Desnoods met een simpele <? if($_GET['']=="content3"){ .... } ?> Hoe krijg ik dat voor elkaar? Ik kom er zelf niet helemaal uit, aangezien alles wat ik probeer niet werkt. Alvast bedankt!!

Groet,
Nils

BlackAdder
%Europe/Berlin %796 %2005, 20:07
Heb inmiddels het antwoord zelf gevonden, een prachtige
window.onload=function () {expandcontent('content1')}
doet wonderen, had even een blackout denk ik :D

Groet,
Nils

N.B. Wat mij betreft mag er een slotje op..