Jag har en funktion som visar en dold div. Det funkade i Fx och i IE men nu gör det inte det. Det har funkat i IE 6 och fx 2. Har inte provat i IE 7 än. Symptomen är att när man trycker "Innehållsföreteckning (klicka för att visa)" skickas man upp till toppen och diven visas inte. Om man trycker ett antal gånger på "Innehållsföreteckning" visas diven tillslut men man kan inte ha det så i slutändan.
showhide.js
<!--
var state = 'none';
function showhide(layer_ref) {
if (state == 'block') {
state = 'none';
}
else {
state = 'block';
}
if (document.all) { //IS IE 4 or 5 (or 6 beta)
eval( "document.all." + layer_ref + ".style.display = state");
}
if (document.layers) { //IS NETSCAPE 4 or below
document.layers[layer_ref].display = state;
}
if (document.getElementById &&!document.all) {
hza = document.getElementById(layer_ref);
hza.style.display = state;
}
}
//-->
Koden jag använder på min sida.
<a href="#" onclick="showhide('innehall');">Innehållföreteckning (klicka för att visa)</a><br>
<div id="innehall" style="display: none; font-size: 13;">bla bla bla</div>
Uschamej, vilken ful kod! Netscape 4 är död och begraven sen länge, och IE stödjer sedan version document.getElementById. Alltså är det den enda metod du behöver använda.
<script type="text/javascript">
function showhide(id){
var lref=document.getElementById(id).style;
lref.display=(lref.display=='none')?'':'none';
}
</script>
<a href="javascript:;;" onclick="showhide('innehall');">Innehållföreteckning (klicka för att visa)</a><br>
<div id="innehall" style="display: none; font-size: 13;">bla bla bla</div>
Detta bör funka som det ska. (Notera även ändringen i href.)
Passar på att låna tråden för en kort fråga, igen med javascript.
<script language"javascript">
function nyttfonster()
{
window.open('bblist.php','BBkod lista','width=400,height=280,resizable=yes,status=yes');
}
</script>
<br />
Funkar lika bra med stora som små bokstäver.
För hela listan, <a href="javascript:nyttfonster()">klicka här</a>.
</div>
Denna kod fungerar bra i fx men inte i IE där jag får felet Sidan innehåller fel :/
Det enda jag kan se är att andra argumentet innehåller ett mellanslag, vilket det inte får göra. Det andra argumentet du ger window.open motsvarar target="" i en länk. Alltså ska du inte sätta nåt där som du inte skulle sätta i target.
Du kan exempelvis ge _blank till det andra argumentet. Men jag rekommenderar i ditt fall nåt värde, t ex bbkodlista, vilket gör att om besökaren klickar flera gånger på samma länk öppnas länken i samma fönster, istället för ett nytt för varje klick.
Eller ptja, pilla gärna in det i den externa stilmallen, men jag tror du förstår konceptet :)
Då kommer inte min kod att funka eftersom lref.display kommer läsas som en tom sträng, inte none. display: none; måste stå i elementets style-attribut.
nidron: Missade ditt inlägg, du skrev ju faktiskt samma sak som nitro. Det ligger i php-filen av den anledningen som nitro skrev. :) r/ vilken jobbig mening jag skrev.
nitro: Det har du nog förbaskat rätt i. Jag satt precis med min egen funktion som påminner om din, men som använder visibility-propertien istället och som även kollar om strängen är tom, sorry :)
silfver: Det var nog lika bra att du missade det ;)
136 ms totalt · 3 externa anrop · v20260731065814-full.b746b907