Webstatt.org - Community seit 2006 - 2012 (2024?)

[Gelöst] Problem mit Gecko-Engine (Safari, FF)

Avatar user-125
09.03.2006 18:53

Hallo, ich habe ein Problem.
Folgende Funktion wird durch einen Buttonklick aufgeruffen:


var acpMenuView = 1;

function acpMenu ( )
{
if ( acpMenuView == '1' )
{
acpNavigationButton.style.display = 'none'
acpNavigationMenu.style.display = 'block'
acpMenuView = 2;
window.setTimeout("timedCloseAcpMenu()",20*1000);
return true;
}
else
{
acpNavigationButton.style.display = 'block'
acpNavigationMenu.style.display = 'none'
acpMenuView = 1;
return true;
}
}


In meinem Liebsten, dem Opera, funktioniert es. Aber in der Gecko-Engine (safari, Firefox) geht net .. wer ne Idee?

Liebe user-125y aka user-125 aka dionysos
Avatar user-290
09.03.2006 19:06

Fehlermeldung? Javascript-Konsole?
Evtl. eine alte FF-Version die bestimmte css-eigenschaften nicht unterstützt? (display)
...

Avatar user-125
09.03.2006 19:08

Fehler: acpNavigationButton is not defined Quelldatei: http://127.0.0.1/moep/dionysos.js Zeile: 15

Liebe user-125y aka user-125 aka dionysos
Avatar user-253
09.03.2006 19:09

Was klappt denn dabei nicht?
Soweit ich das Script lokal testen kann (also insbesondere ohne den Timeout), funktioniert es...

Michael

// edit

Ja, die Elemente musst du vorher schon irgendwo definieren... Alternativ kannst du um die Elementzugriffe eine IF Abfrage setzen. Also beispielsweise

if(acpNavigationButton) {
acpNavigationButton.style.display = 'none'
}

Avatar user-125
09.03.2006 20:13

Die Elemente sind in der Seite als DIV definiert.



<div id="acpDivContainer" >
<div style="text-align : right; padding : 5px; float:right;">
<img onclick="javascript: acpMenuHideTotal();" src="./dionysos/src/close.png" class="icon" alt="ACP Navigation aufklappen" />
</div>
<div id="acpNavigationButton" style="display:block;">
<button onclick="javascript: acpMenu();" >
<img src="./dionysos/src/redo.png" class="icon32" alt="ACP Navigation aufklappen" />
ACP Menü aufklappen
</button>
</div>
<div id="acpNavigationMenu" style="display:none;">
<ul>
<li style="margin-bottom:15px;"><img src="./dionysos/src/view.png" class="icon" alt="Overview" /> <a href="admin_start.py">Übersicht</a></li>
<li><img src="./dionysos/src/menu.png" class="icon" alt="Menuedit" /> <a href="admin_menueditor.py">Menü Editor</a></li>
<li><img src="./dionysos/src/text.png" class="icon" alt="Inhalte" /> <a href="admin_content.py">Inhalte</a></li>
<li style="margin-top:25px;"><img src="./dionysos/src/exit.png" class="icon" alt="Logout" /> <a href="admin_logout.py">Logout</a></li>
</ul>
<button onclick="javascript: acpMenu();" >
<img src="./dionysos/src/undo.png" class="icon32" alt="ACP Navigation zuklappen" />
ACP Menü zuklappen
</button>
</div>
</div>


Liebe user-125y aka user-125 aka dionysos
Avatar user-253
09.03.2006 20:16

Aber du greifst ja nicht auf die Elemente zu sondern auf einen gleichnamige Variable.
Du musst vor die Funktion die Zuweisung durchführen, ala:

var acpNavigationButton = document.getElementById('acpNavigationButton'zwinkern;

Avatar user-125
09.03.2006 20:19

Aha ... naja, im Opera hat es halt funktioniert.
Und ich hatte das mit document.acpNavigationButton versucht.

Funktioniert.

Liebe user-125y aka user-125 aka dionysos