JavaScript und Mozilla - weiteres Prob
grassi3000 25.09.2003 - 15:50 553 9
grassi3000
radeon gefrierer
|
Hi, ich hab letztens mal eine JS Funktion geschrieben, die folgendermaßen lautete: function display(name, disp) { var x=eval(document.getElementById(name)); x.style.setAttribute("display",disp); } Der Sinn dahinter war, dass die funktion eine id eines <p> tags geliefert bekommt, in der Variable "name" und die eigenschaft style="display: ... " auf den wert setzt, der in der Variable "disp" übergeben wird setzt. Das ganze funktionierte wunderbar im Internet Explorer, doch als ich das das erste mal im Opera /Mozilla (Firebird) laufen ließ, funktionierte nichts. Mittels JavaScript debugger hab ich dann das ganze so umgeändert, dass es im Opera/Mozilla funktionierte. Der Code lautete dann: function display(name, disp) { var x=eval(document.getElementById(name)); var s="display:"+disp+";"; x.setAttribute("style",s); } Allerdings geht das ganze jetzt im ie nimma. Weiß wer ne Lösung, wie man das ganze coden kann, os dass es in allen Browsern funktioniert? (lt. selfhtml müsste das erste eigentlich eine DOM Lösung sein, was es anscheinend doch nicht ist) Danke
Bearbeitet von grassi3000 am 25.09.2003, 16:17
|
watchout
Legendundead
|
öhm, irgendwo hier muss fürn ltd ein script von mir herumgeistern, wo ich das selbe problem hatte... da: http://www.overclockers.at/showthre...429#post1199429schau dir halt ab was du davon brauchst... getestet is mit IE6 und Firebird 0.6.1 edit: das erste von dir wär ne lösung über "html-elementobjekte" (aber fehlerhaft :P) das zweite über nodes nodes kann der ie aber net so wirklich... deswegen musst auf html-dingsn zurückgreifen...
Bearbeitet von watchout am 25.09.2003, 15:58
|
atrox
in fairy dust... I trust!
|
ganz ohne eval, oder setAttribute...
document.gelElementById(name).style.display=disp; // disp: zb "none"/"block"/...
|
grassi3000
radeon gefrierer
|
@ Watchout
danke, aber das wär wohl so, wie mit Kanonen auf Spatzen schießen
@atrox es geht, mit einer kleinen veränderung: getElement...
Danke
Edit: So ganz hauts doch net hin.
Schaut euch mal die Seite jeweils mitn ie an, und dann mitn mozilla.....die farben sind unwichtig....aber im ie bleibt die obere Zeile immer gleich, im mozilla wandert sie
Bearbeitet von grassi3000 am 25.09.2003, 16:18
|
grassi3000
radeon gefrierer
|
|
atrox
in fairy dust... I trust!
|
so wars auch gemeint  mit der positionierung mußt noch ein wenig arbeiten...
|
watchout
Legendundead
|
@ Watchout danke, aber das wär wohl so, wie mit Kanonen auf Spatzen schießen hmm, ich weiss nicht genau was du meinst, ICH hab gemeint du sollst dir den entsprechenden teil aus mein' script abschaun, weil ich nimmer genau gwusst hab wie ich das gmacht hab und ich zufaul zum nachschaun war - ausserdem hab ich auch in dem thread ziemlich genau geschrieben was der ie da falsch macht was unter umständen nützlich sein kann Schaut euch mal die Seite jeweils mitn ie an, und dann mitn mozilla.....die farben sind unwichtig....aber im ie bleibt die obere Zeile immer gleich, im mozilla wandert sie da kann ich mir nur eine erklärung denken: durch die whitespaces is der browser etwas verwirrt btw: hättest du hier die "kanonen" angewandt hättest du das problem nicht
|
Rektal
Here to stay
|
ups link vergessen
http://www.8ung.at/grasi/test.htm Da meine Schriftgroesse default etwas groesser ist bricht schon die Zeile "Newsroom" einmal um (vor Suche). Wenn ich dann ueber Newsroom hovere, dann wird der Teil eingeblendet, welcher aufgrund der Schrift aber wieder eine Zeile umbricht. Der ganze graue Block schwimmt dann auf einmal weil mehr Platz als zuvor verbraucht wird. Ausserdem: wenn nur das Hauptmenu zu sehen ist, ich ueber Newsroom fahre(und gleich darunter das Wort Suche steht, weil es umbricht), erzeugt der Browser ein onmouseover event, weil aber der neue Platzverbrauch den ganzen Block nach oben draengt erkennt er ein onmouseover auch fuer die Suche und das springt das ganze wie in der Disco rum.
8ung_37572.png (downloaded 15x)
|
grassi3000
radeon gefrierer
|
Da gibts doch eine CSS funktion, mit dem ich die Schriftgrößeneinstellung der Browser overrulen kann. Momentan sind die Schriftgrößen durch "small, x-small, usw." festgelegt. Funktioniert das overrulen durch angabe der Schriftgröße in px?
Das herumhupfen der Schrift geschieht komischerweise im Mozilla auch, wenn die Schriftgröße passt. Weiß wer von euch, wie man das verhindern kann?
|
Rektal
Here to stay
|
Also, mit nichts und niemanden kannst du jemals die Schriftgroesse eines Browsers overrulen. Nada, Nix. Das ist gegen das Prinzip des Cascading von CSS. [edit: das gilt jetzt nur fuer mindest-schriftgroessen!] Du musst dir die Browser-Schrifteinstellung wie ein body { font-size: <wahtever> !important;} vorstellen. !important Regeln kannst du im spaeteren Lauf des Cascading _nicht_ mehr overrulen. Wenn ich im Browser als mindestgroesse 16px angebe (was ich auch habe, alles andere ist fuer mich auf meiner Standardaufloesung bei 1600x1200 schwer zu lesen) kann das kein CSS einer Seite je overrulen. Das der IE bei px Werten keine Skalierung erlaubt ist der groesse Pfusch der M$ Programmierer. Amen
|