onLoad Funktion mit Attributen starten lassen, aber wie??
Karapim
- javascript
Hi Leute,
ich habe wieder einmal ein PRoblem und hoffe hier meine Lösung zu bekommen.
Folgendes script habe ich mich aus dem Netz rauskopiert um eine Art treeview zu erreichen.
Ich weiß, dass es da bessere Methoden gibt, aber für den Anfang muss es reichen.
Bloß verstehe ich nicht die genaue Vorgehensweise.
Kann mir das jemand mal kurz erklären und sagen welchen onload-Befehl
ich im body-tag schreiben muss, damit die <div>s nicht ausgewählt geladen werden?!?!?
Dankeschön
Karapim
---------------------------------------------------------------------
<html>
<head>
<title>llinkleiste test</title>
<script language="JavaScript">
function toggle( targetId )
{
if (document.getElementById)
{
var target = document.getElementById( targetId );
if (target.style.display == "")
{
target.style.display = "none"
}
else
{
target.style.display = ""
}
}
}
</script>
</head>
<body>
<a onclick="toggle('fotos'); return false;" href="#">Fotos<br></a>
<div id="fotos">link zu foto 1<br>link zu foto 2<br>link zu foto 3<br></div>
<a onclick="toggle('fun'); return false;" href="#">Fun<br></a>
<div id="fun">link zu fun 1<br>link zu fun 2<br>link zu fun 3<br></div>
</body>
</html>
Hi,
Kann mir das jemand mal kurz erklären und sagen welchen onload-Befehl
ich im body-tag schreiben muss, damit die <div>s nicht ausgewählt geladen werden?!?!?
onLoad ist ein Event-Handler (kein Befehl), welcher *nach* dem vollständigen Laden der Seite feuert. Du möchtest *vorher* die <div>s unsichtbar halten, also musst Du dies entsprechend angeben.
<script language="JavaScript">
ERROR: Required attribute "type" missing.
if (document.getElementById)
Diese Prüfung besagt, dass das Script nur bei DOM-fähigen Browsern funktioniert. Alle anderen - inklusive derer, bei denen JavaScript deaktiviert wurde - kommen nicht in den Genuss Deines Menüs. Soll heißen: Dieses Script darf nur als *Alternative* gelten, es *muss* ein allgemeingültiges Original geben.
var target = document.getElementById( targetId );
Hier wird ein Element im Dokument-Baum angewählt. Ohne zu prüfen, ob dieses existiert,
if (target.style.display == "")
wird dessen CSS-Eigenschaft "display" untersucht und ggf. verändert. Und genau diese Eigenschaft möchtest auch Du in der Vorgabe verändern, unter Beachtung nicht-JavaScript- oder -DOM-tauglicher Browser.
Cheatah
Moin!
if (target.style.display == "")
wird dessen CSS-Eigenschaft "display" untersucht und ggf. verändert. Und genau diese Eigenschaft möchtest auch Du in der Vorgabe verändern, unter Beachtung nicht-JavaScript- oder -DOM-tauglicher Browser.
Ich möchte das aber nicht. Opera 6 kann die display-Eigenschaft eines Elements nicht dynamisch verändern. Die jetzige Lage erlaubt immerhin, dass man zwar nichts einklappen kann, aber wenigstens an die Links kommt. Die Umstellung auf "zuerst versteckt" würde bedeuten, dass man nicht an die Links rankommt - zumindest, wenn diese Umstellung per CSS gemacht wird (per Javascript wird's ja zum Glück nicht funktionieren).
- Sven Rautenberg
Hi,
Opera 6 kann die display-Eigenschaft eines Elements nicht dynamisch verändern.
das war mir nicht bewusst, danke für den Hinweis.
Cheatah
Opera 6 kann die display-Eigenschaft eines Elements nicht dynamisch verändern.
ICh weiß, dass es "schlechter" Stil ist wenn man nicht für alle
Browser programmiert, aber dieses Thema "warum sollte man seine
Seite für alle Browser optimieren" wollte ich jetzt nicht
anfangen...:-)
Es wäre nett, wenn mir jdm von euch nur sagen würde wo und wie ich die "Hauptlinks" nicht angeglickt lade...
vielen Danke
Gruß
K
vielen Danke
:-)) das E ist dann wohl zuviel...
Also nochmal..was ist DOM und was war das mit dem type??
Danke...jetzt aber :-)
Hi,
Also nochmal..was ist DOM
lies bitte die Antworten auch, die Dir gegeben werden. Ich habe Dir einen Link genannt, unter dem Du dies erklärt bekommst.
und was war das mit dem type??
Dieses Attribut ist im <script>-Tag zwingend erforderlich. Wie der Attributwert lauten muss, erfährst Du u.a. im Archiv.
Cheatah
Hi,
ICh weiß, dass es "schlechter" Stil ist wenn man nicht für alle
Browser programmiert, aber dieses Thema "warum sollte man seine
Seite für alle Browser optimieren" wollte ich jetzt nicht
anfangen...:-)
man kann nicht "für" eine Menge von Browsern optimieren, sondern nur gegen alle anderen. Fange also gar nicht erst mit dem Versuch an. Erstelle Deine Site so, dass sie immer und mit ausnahmsfrei jedem Client vollständig funktioniert und alle Informationen zugänglich sind - _erst dann_ kannst Du Dich bemühen, es für spezielle Browser "besser" zu machen.
Es wäre nett, wenn mir jdm von euch nur sagen würde wo und wie ich die "Hauptlinks" nicht angeglickt lade...
Ich habe Dir darauf bereits geantwortet, und rate weiterhin davon ab, es zu tun. Wenn Du im Script suchst, suchst Du an der falschen Stelle.
Cheatah
Ds mit dem DOM habe ich übersehen. Danke.
Ich habe Dir darauf bereits geantwortet, und rate weiterhin davon ab, es zu tun. Wenn Du im Script suchst, suchst Du an der falschen Stelle.
Die Angabe war für einen Ungeübten wie die Aufforderung an ein kleines Kind das das Fahrradfahren lernen soll, einfach nur das Gleichgewicht zu halten und zu stramplen.
Ich hoffe du verstehst es nicht falsch...Ich brauche schon eine script-Angabe.
Die Geschichte mit dem type="" im javasript header ist anscheinend nur nötig, wenn man eine externe Datei importieren lässt!
Also? :-)
Hi,
Ich habe Dir darauf bereits geantwortet, und rate weiterhin davon ab, es zu tun. Wenn Du im Script suchst, suchst Du an der falschen Stelle.
Die Angabe war für einen Ungeübten wie die Aufforderung an ein kleines Kind das das Fahrradfahren lernen soll, einfach nur das Gleichgewicht zu halten und zu stramplen.
ungefähr so war's auch gemeint. Und genau wie beim kleinen Kind laufe ich neben Dir her und halte Dich fest, wenn Du kippst. Sprich: Ich erwarte von Dir, dass Du erst mal strampelst ;-) und dort wo es hakt und Du nicht weiterkommst, frage spezifisch nach - Dir wird geholfen werden.
Die Geschichte mit dem type="" im javasript header ist anscheinend nur nötig, wenn man eine externe Datei importieren lässt!
Nope, das Attribut ist immer nötig. Wo es fehlt und es trotzdem funktioniert, siehst Du eine Fehlerkorrektur.
Cheatah
»»Ich erwarte von Dir, dass Du erst mal strampelst ;-) und dort wo es hakt und Du nicht weiterkommst, frage spezifisch nach - Dir wird geholfen werden.
Ich dachte es wäre eine Detailfrage. :-)
Ich möchte nur wissen auf welche Art und WEise ich das onLoad setzen muss...
Die Geschichte mit dem type="" im javasript header ist anscheinend nur nötig, wenn man eine externe Datei importieren lässt!
Wo steht das hier bei selfhtml???
Karapim
hi,
Die Geschichte mit dem type="" im javasript header ist anscheinend nur nötig, wenn man eine externe Datei importieren lässt!
Wo steht das hier bei selfhtml???
gar nicht, weil es - wie chräcker ja schon sagte - falsch ist.
wie man JS richtig einbindet, steht hier http://selfhtml.teamone.de/javascript/intro.htm#javascriptbereiche und hier http://selfhtml.teamone.de/javascript/intro.htm#javascriptdateien.
gruss,
wahsaga
Das heißt jetzt was? :-)
So auf keinen Fall, und zu Beginn "versteckt" erst recht nicht, ja? :-)
Toll... :-)
EIne Andere Möglichkeit wäre?
Danke
Was ist DOM?
Wolltest du mir damit unterschwellig mitteilen, dass ich es SO nicht machen soll? :-)
Schade, kennst du denn ein gutes Script für ein Treeview?
Wenn es so nicht funktioniert, bzw vollkommen schlecht durchdacht ist, dann werd ichs nicht machen.
Aber sag mir bitte nur noch wo ich diese onLoad reinschreiben müsste und wie. Nur um es abzuhaken...
Danke
K
Hi,
Was ist DOM?
Document Object Model, siehe http://selfhtml.teamone.de/javascript/index.htm. Es ist grundsätzlich gefährlich, Techniken einzusetzen, die man nicht grundlegend versteht - verzichte also auf Scripts aller Art, wenn Du nicht weißt, was sie tun.
Wolltest du mir damit unterschwellig mitteilen, dass ich es SO nicht machen soll? :-)
Ja :-) Selbst ohne die Information, die Sven uns gab.
Schade, kennst du denn ein gutes Script für ein Treeview?
Es ist *immer* problematisch, gerade für jene Dinge, die in jedem Fall unbedingt verfügbar zu sein haben, nicht voraussetzenbare Techniken wie JavaScript einzusetzen. Das beste Script ist also per definitionem eines, das keines ist. Verzichte bei solchen Dingen wie einer Navigation oder Kontaktmethoden auf JavaScript und ähnliches.
Aber sag mir bitte nur noch wo ich diese onLoad reinschreiben müsste und wie. Nur um es abzuhaken...
onLoad steht üblicherweise im <body>, wäre theoretisch aber auch in anderen Elementen denkbar. Es bedeutet: Führe den enthaltenen JavaScript-Code aus, sowie das Element und dessen Inhalte vollständig geladen sind.
Cheatah
Hallo,
nur als Tip:
Du kannst mit <noscript> ... </noscript> eine auf html basierende Alternative zur Javascript-Navigation anbieten, die nur dann angezeigt wird, wenn der Besucher kein Javascript bzw. JS abgeschaltet hat.
Gruß, Jürgen