Java
Vlad
- javascript
Hallo,
ich habe so eine Funktion die die Farbe verändert.
function navSearchSelect(ID, ID2)
{
container = document.getElementById(ID2);
tags = container.getElementsByTagName("a");
for (var i=0; i<tags.length;++i)
{
tags[i].style.color='';
}
document.getElementById(ID).style.color='red';
}
Das div sieht so aus
<div id="lala">
<a href>...</a>
<a href>...</a>
<a href>...</a>
</div>
Das problem ist dass die funktion nicht im IE funktioniert, dafür in Firefox und Opera.
Hat jemand eine Idei wieso es in IE nicht läuft?
Hallo,
function navSearchSelect(ID, ID2)
{
container = document.getElementById(ID2);
Du solltest Variablen immer mit dem Schlüsselwort „var“ deklarieren.
Übrigens kannst du den Container (also wohl das übergeordnete Element auch leichter finden -> http://de.selfhtml.org/javascript/objekte/node.htm#parent_node@title=parentNode)
[…]
for (var i=0; i<tags.length;++i)
Was ist „++i“?
Hat jemand eine Idei wieso es in IE nicht läuft?
Wie wird das Script aufgerufen? Erste Tests im IE zeigten jedenfalls keine Probleme.
mfg. Daniel
Hallo Daniel.
[…]
for (var i=0; i<tags.length;++i)Was ist „++i“?
Der Präfix-Inkrementierungsoperator. Er erhöht die Variable und gibt den Wert zurück, wohingegen die Postfix-Variante erst den Wert zurück gibt und danach die Variable erhöht. Macht hier keinen Unterschied, stört aber auch nicht.
Einen schönen Freitag noch.
Gruß, Mathias
Hallo,
[…]
for (var i=0; i<tags.length;++i)Was ist „++i“?
Der Präfix-Inkrementierungsoperator. Er erhöht die Variable und gibt den Wert zurück, wohingegen die Postfix-Variante erst den Wert zurück gibt und danach die Variable erhöht.
Ah, wieder was gelernt und Tatsache:
var i = 4;
while(i--)
void(0);
alert(i);
ergibt -1
var i = 4;
while(--i)
void(0);
alert(i);
ergibt 0.
mfg. Daniel
Ja, das stimmt es funktioniert ohne weiteres.
Funktioniert leide nicht auf meiner Seite.
http://www.mymir.ru
(neben dem logo rechts, über dem Suchfield) ist diese Funktion realisiert und funktioniert nicht im IE.
Vielleicht könnte da jemand schauen.
Kann jemand vielleicht ein Tip bzw. ein vernünftiges Debug Programm preisgeben dass solche schleichfehler analysieren kann.
Hallo,
Ja, das stimmt es funktioniert ohne weiteres.
Funktioniert leide nicht auf meiner Seite.
http://www.mymir.ru
(neben dem logo rechts, über dem Suchfield) ist diese Funktion realisiert und funktioniert nicht im IE.
Die Funktion scheint auch noch ein bisschen mehr zu machen. Meiner Meinung nach Overkill für so eine kleine Suchmaschinen-Auswahl. Außerdem
Tipp: Realisiere die Auswahl mit Hilfe einer Radio-Button-Liste. Je nach ausgewähltem Menüpunkt kann der Server dann entscheiden, wonach er sucht.
Wenn du das gemacht hat, und die Suche erstmal mit einfachen Mitteln funktioniert, kannst du dich dann an das JavaScript machen und damit das Erscheinungsbild so modifizieren, dass es genauso aussieht wie jetzt.
Vielleicht könnte da jemand schauen.
Ähm… du hast 7(!) Scripte eingebunden, die auch jeweils ziemlich groß sind. Bitte zeige nur den Code, welcher etwas mit dem Problem zu tun hat.
Kann jemand vielleicht ein Tip bzw. ein vernünftiges Debug Programm preisgeben dass solche schleichfehler analysieren kann.
Welche (unverständliche ;-)) Fehlermeldung gibt denn der IE aus?
mfg. Daniel
Die Funktion scheint auch noch ein bisschen mehr zu machen. Meiner Meinung nach Overkill für so eine kleine Suchmaschinen-Auswahl. Außerdem
Nein, wieso? onclick ruft genau die eine funktion die ich gepostet habe. Diese steht in
http://www.mymir.ru/ajaxScripts.js
auf der ersten stelle (navSearchSelect)
Tipp: Realisiere die Auswahl mit Hilfe einer Radio-Button-Liste. Je nach ausgewähltem Menüpunkt kann der Server dann entscheiden, wonach er sucht.
Wenn du das gemacht hat, und die Suche erstmal mit einfachen Mitteln funktioniert, kannst du dich dann an das JavaScript machen und damit das Erscheinungsbild so modifizieren, dass es genauso aussieht wie jetzt.
Es ist etwas komplizierter... da mus schon das ganze Formular am Besten ausgetauscht werden. Weil da noch autocompletation zum spiel kommt aber für dieses Problem ja irrelevant.
Ausser dem funktioniert ja die suche. Es geht wirklich um das kleine Script das irgend wie in verbindung mit allem drum und dram im IE streikt. Es streikt auch in Firefox beim ersten button. Bei den restlichen funktioniert es.
Vielleicht könnte da jemand schauen.
Ähm… du hast 7(!) Scripte eingebunden, die auch jeweils ziemlich groß sind. Bitte zeige nur den Code, welcher etwas mit dem Problem zu tun hat.
Ok, sorry. Daran habe ich nicht gedacht. Das relevante script habe ich oben angegeben.
Kann jemand vielleicht ein Tip bzw. ein vernünftiges Debug Programm preisgeben dass solche schleichfehler analysieren kann.
Welche (unverständliche ;-)) Fehlermeldung gibt denn der IE aus?
:) eigentlich gar keine VERSION 7, Version 6 gibt "FEHLER auf der seite an."
Gibt es für den IE sowas wie eine JavaScriptConsolle wie es eine für Firefox gibt?
Hallo,
Die Funktion scheint auch noch ein bisschen mehr zu machen. Meiner Meinung nach Overkill für so eine kleine Suchmaschinen-Auswahl. Außerdem
Nein, wieso? onclick ruft genau die eine funktion die ich gepostet habe.
Also ich glaube nicht, dass diese Funktion auch dafür verantwortlich ist:
„Wait please! Bitte warten! Тормозим, подождите!“
Diese steht in
http://www.mymir.ru/ajaxScripts.js
auf der ersten stelle (navSearchSelect)
Was macht dich so sicher, dass es etwas damit zu tun hat? Mein IE7 meldet bereits nach dem Laden einen Fehler und danach wird ja die weitere Verarbeitung abgebrochen.
Tipp: Realisiere die Auswahl mit Hilfe einer Radio-Button-Liste. Je nach ausgewähltem Menüpunkt kann der Server dann entscheiden, wonach er sucht.
Wenn du das gemacht hat, und die Suche erstmal mit einfachen Mitteln funktioniert, kannst du dich dann an das JavaScript machen und damit das Erscheinungsbild so modifizieren, dass es genauso aussieht wie jetzt.Es ist etwas komplizierter... da mus schon das ganze Formular am Besten ausgetauscht werden.
Dann solltest du diese aber wenigstens auch als einzelne Seiten bereitstellen, weil deine User ohne JS (oder auch im Fehlerfall) sonst keine Möglichkeit haben, die Suche zu verwenden.
Es streikt auch in Firefox beim ersten button.
Na dann solltest du diesen Fehler erstmal beheben, weil…
Fehler: document.getElementById(ID) has no properties
Quelldatei: http://www.mymir.ru/ajaxScripts.js?jghjg
Zeile: 19
…zumindest schon mal nicht allzu schwer zu beheben sein sollte.
Ähm… du hast 7(!) Scripte eingebunden, die auch jeweils ziemlich groß sind. Bitte zeige nur den Code, welcher etwas mit dem Problem zu tun hat.
Ok, sorry. Daran habe ich nicht gedacht. Das relevante script habe ich oben angegeben.
Woher nimmst du die Sicherheit, dass es das relevante Script ist? Wenn du die Seite swchon nciht auf das nötige kürzen willst, solltest du dir wenigstens eine vernünftige Debugging-Strategie überlegen. Zum Beispiel:
• Was wird nach den Laden aufgerufen?
• Funktioniert das alles -> und hier hakts schon…
Kann jemand vielleicht ein Tip bzw. ein vernünftiges Debug Programm preisgeben dass solche schleichfehler analysieren kann.
Welche (unverständliche ;-)) Fehlermeldung gibt denn der IE aus?
:) eigentlich gar keine VERSION 7
Ah, ich bin davon ausgegangen, dass du mit diesem getestet hast. Aber auch der IE7 zeigt einen Fehler an.
Version 6 gibt "FEHLER auf der seite an."
Na also. Klicke einfach mal doppelt auf die Meldung und er zeigt dir zumindest an, um welche Zeile/Spalte es sich handelt. Der Rest ist aber leider unbrauchbar :-(
Gibt es für den IE sowas wie eine JavaScriptConsolle wie es eine für Firefox gibt?
Keine Ahnung. Vielleicht in der Developer-Toolbar für den IE.
mfg. Daniel
Hallo Daniel!
Also ich glaube nicht, dass diese Funktion auch dafür verantwortlich ist:
„Wait please! Bitte warten! Тормозим, подождите!“
Ja, du hast ja recht. Es werden zwei funktionen aufgerufen.
Aber es knalte ja bei navSearchSelect.
Diese steht in
http://www.mymir.ru/ajaxScripts.js
auf der ersten stelle (navSearchSelect)
Was macht dich so sicher, dass es etwas damit zu tun hat? Mein IE7 meldet bereits nach dem Laden einen Fehler und danach wird ja die weitere Verarbeitung abgebrochen.
Meine IE7 meldet das nicht. Muss ich vieleicht an anderen rechnert testen. Nur IE6 meldet ein fehler auf der Seite. Funktioniert aber alles.
Tipp: Realisiere die Auswahl mit Hilfe einer Radio-Button-Liste. Je nach ausgewähltem Menüpunkt kann der Server dann entscheiden, wonach er sucht.
Wenn du das gemacht hat, und die Suche erstmal mit einfachen Mitteln funktioniert, kannst du dich dann an das JavaScript machen und damit das Erscheinungsbild so modifizieren, dass es genauso aussieht wie jetzt.Es ist etwas komplizierter... da mus schon das ganze Formular am Besten ausgetauscht werden.
Dann solltest du diese aber wenigstens auch als einzelne Seiten bereitstellen, weil deine User ohne JS (oder auch im Fehlerfall) sonst keine Möglichkeit haben, die Suche zu verwenden.
Ja das mache ich. Es wird der naechste schrit sein. Nach dem alles mit Javascript laeuft.
Es streikt auch in Firefox beim ersten button.
Diesen Fehler habe ich behoben. Da wurde ein falscher DIV ID uebergeben.
Na dann solltest du diesen Fehler erstmal beheben, weil…
Fehler: document.getElementById(ID) has no properties
Quelldatei: http://www.mymir.ru/ajaxScripts.js?jghjg
Zeile: 19…zumindest schon mal nicht allzu schwer zu beheben sein sollte.
Woher nimmst du die Sicherheit, dass es das relevante Script ist? Wenn du die Seite swchon nciht auf das nötige kürzen willst, solltest du dir wenigstens eine vernünftige Debugging-Strategie überlegen. Zum Beispiel:
• Was wird nach den Laden aufgerufen?
• Funktioniert das alles -> und hier hakts schon…
Also es lag tatsaechlich an den deklarationen in der Funktion navSearchSelect.
"var variable" ist anscheinend fuer den IE sehr wichtig. Das habe ich mir nicht gedacht und fast abgewoehnt "var" vor der Variable zu schreiben.
Jedenfalls danke fuer die Tips.
Gruesse
Vlad
Hallo,
Dann solltest du diese aber wenigstens auch als einzelne Seiten bereitstellen, weil deine User ohne JS (oder auch im Fehlerfall) sonst keine Möglichkeit haben, die Suche zu verwenden.
Ja das mache ich. Es wird der naechste schrit sein. Nach dem alles mit Javascript laeuft.
Ich würde es anders herum machen, weil JavaScript ja auf HTML aufsetzt und nicht umgekehrt.
• Was wird nach den Laden aufgerufen?
• Funktioniert das alles -> und hier hakts schon…Also es lag tatsaechlich an den deklarationen in der Funktion navSearchSelect.
OK, dann kann ich wohl davon ausgehen, dass es erstmal funktioniert.
"var variable" ist anscheinend fuer den IE sehr wichtig. Das habe ich mir nicht gedacht und fast abgewoehnt "var" vor der Variable zu schreiben.
Wenn du das nicht tust, sucht der Interpreter nach einer Variablen mit diesem Namen. Falls er sie im aktuellen Scope nicht findet, hangelt er sich nach oben und gelangt irgendwann zu den globalen Variablen. Existiert diese nicht, erstellt er sie dort.
Deshalb solltest du Variablen *immer* mit dem Schlüsselwort „var“ deklarieren und falls es doch mal eine globale Variable sein soll, die du dort noch nicht deklariert hast, verwendest du
window.variablenname = …
Der Firefox würde deinen Programmierstil im Strict-Mode jedenfalls nicht mögen und eine Warnung ausgeben. So aktivierst du ihn:
• „about:config“ in die Adressleiste eingeben
• ändere „javascript.options.strict“ auf true
Warum der Fehler nur im IE auftritt: Hast du vielleicht irgendwo eine ID mit diesem Namen? Der IE listet diese Elemente (entgegen der Spezifikation) als Variablen im window-Objekt auf.
mfg. Daniel
Ich würde es anders herum machen, weil JavaScript ja auf HTML aufsetzt und nicht umgekehrt.
Du hast ja auch recht...
• Was wird nach den Laden aufgerufen?
• Funktioniert das alles -> und hier hakts schon…Also es lag tatsaechlich an den deklarationen in der Funktion navSearchSelect.
OK, dann kann ich wohl davon ausgehen, dass es erstmal funktioniert.
Ja
"var variable" ist anscheinend fuer den IE sehr wichtig. Das habe ich mir nicht gedacht und fast abgewoehnt "var" vor der Variable zu schreiben.
Der Firefox würde deinen Programmierstil im Strict-Mode jedenfalls nicht mögen und eine Warnung ausgeben. So aktivierst du ihn:
• „about:config“ in die Adressleiste eingeben
• ändere „javascript.options.strict“ auf trueWarum der Fehler nur im IE auftritt: Hast du vielleicht irgendwo eine ID mit diesem Namen? Der IE listet diese Elemente (entgegen der Spezifikation) als Variablen im window-Objekt auf.
Ich bin ein absolute javascript newbi :-) von sofern kenn ich solche feinheiten nicht. ID gibt es überall als variable. Ich muss mein code auf qualität mal prüfen, mit dem neuen Strict-Mode vieleicht.
Hallo,
Warum der Fehler nur im IE auftritt: Hast du vielleicht irgendwo eine ID mit diesem Namen? Der IE listet diese Elemente (entgegen der Spezifikation) als Variablen im window-Objekt auf.
Ich bin ein absolute javascript newbi :-) von sofern kenn ich solche feinheiten nicht. ID gibt es überall als variable.
Ich weiß nicht genau, ob du mich richtig verstanden hast. Deshalb nochmal zur Verdeutlichung. Angenommen, du hast dies in deinem HTML-Code stehen:
<p id="Text">Hier steht halt irgendwas drin</p>
Wenn in deinem Script jetzt etwas wie:
Text = "wat andres";
…vorkommt, bekommst du schon eine Fehlermeldung im IE.
Und alles bloß, weil µ$oft sich mal wieder nicht an die Standards hält…
mfg. Daniel