HighDots Forums  

IE7 focus() und Dropdownmenü

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss IE7 focus() und Dropdownmenü in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Mario Ramseier
 
Posts: n/a

Default IE7 focus() und Dropdownmenü - 11-09-2007 , 08:17 AM






Hallo zusammen

Habe gestern mit erstaunen festgestellt dass mein Menü auf der Homepage
nicht mehr läuft (Menü fährt nicht mehr ein).

Kurz zur Umgebung, ein CSS Menü
(http://www.htmldog.com/articles/suckerfish/dropdowns/) für den IE gibts
eine Pseudoklasse:
sfHover = function() {
var sfEls = document.getElementById("nav").getElementsByTagNam e("LI");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=" sfhover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

Nun setze ich beim Pageload den Fokus jeweils auf ein zentrales Suchfeld:
"document.getElementById('searchbox').setAttribute ('autocomplete','off');",
funktioniert bei allen Browser IE6, Opera, FF perfekt, ausser beim IE 7
welcher das Menü nicht mehr einklappen lässt.

Hat jemand einen Anhaltspunkt zur Problemlösung?

Danke im voraus und grüsse aus Zürich in welchem gerade die ersten
Schneeflocken fallen.




Reply With Quote
  #2  
Old   
Martin Honnen
 
Posts: n/a

Default Re: IE7 focus() und Dropdownmenü - 11-09-2007 , 09:51 AM






Mario Ramseier wrote:

Quote:
Nun setze ich beim Pageload den Fokus jeweils auf ein zentrales Suchfeld:
"document.getElementById('searchbox').setAttribute ('autocomplete','off');",
funktioniert bei allen Browser IE6, Opera, FF perfekt, ausser beim IE 7
welcher das Menü nicht mehr einklappen lässt.

Hat jemand einen Anhaltspunkt zur Problemlösung?
IE 7 unterstützt CSS :hover generell, eventuell gibt es daher Probleme
mit der Kombination aus CSS und dem Scriptansatz, der nur für IE 6
gebraucht wird. Probiere mal aus, ob der reine CSS-Ansatz mit IE 7
funktioniert.


--

Martin Honnen
http://JavaScript.FAQTs.com/


Reply With Quote
  #3  
Old   
Mario Ramseier
 
Posts: n/a

Default Re: IE7 focus() und Dropdownmenü - 11-09-2007 , 11:36 AM



"Martin Honnen" <mahotrash (AT) yahoo (DOT) de> schrieb im Newsbeitrag
news:4734821b$0$27124$9b4e6d93 (AT) newsspool1 (DOT) arcor-online.net...
Quote:
IE 7 unterstützt CSS :hover generell, eventuell gibt es daher Probleme
mit der Kombination aus CSS und dem Scriptansatz, der nur für IE 6
gebraucht wird. Probiere mal aus, ob der reine CSS-Ansatz mit IE 7
funktioniert.
Hallo Martin

Das komische an der Sache ist ja, wenn ich den
"document.getElementById('searchbox').setAttribute ('autocomplete','off');",
welcher ja gar nichts mit dem Menü zu tun hat, weglasse, funktioniert es
bestens... D.h. habe im Moment ne Browserweiche drin welche den Autofokus
auf das Textfeld bei allen Browsern ausser IE7 setzt.

Grüsse




Reply With Quote
  #4  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: IE7 focus() und Dropdownmenü - 11-09-2007 , 12:26 PM



Mario Ramseier wrote:
Quote:
"Martin Honnen" <mahotrash (AT) yahoo (DOT) de> schrieb im Newsbeitrag
news:4734821b$0$27124$9b4e6d93 (AT) newsspool1 (DOT) arcor-online.net...
Bitte keine Einleitungsromane. --> http://oe-faq.de/

Quote:
IE 7 unterstützt CSS :hover generell, eventuell gibt es daher Probleme
mit der Kombination aus CSS und dem Scriptansatz, der nur für IE 6
gebraucht wird. Probiere mal aus, ob der reine CSS-Ansatz mit IE 7
funktioniert.

Hallo Martin
Wir lesen hier alle mit.

Quote:
Das komische an der Sache ist ja, wenn ich den
"document.getElementById('searchbox').setAttribute ('autocomplete','off');",
welcher ja gar nichts mit dem Menü zu tun hat, weglasse, funktioniert es
bestens...
Das verwundert nicht, gibt es doch kein HTML-Element, welches ein
autocomplete-Attribut hat. Ausserdem sind die Implementationen von
setAttribute() bekannt dafür, fehlerhaft zu sein. Dein Ansatz bzw.
der von Suckerfish ist ausserdem verkehrt -- Event-Bubbling existiert.

Quote:
D.h. habe im Moment ne Browserweiche drin welche den Autofokus
auf das Textfeld bei allen Browsern ausser IE7 setzt.
Autofokus? Du velwechserst da offensichtlich etwas.


PointedEars
--
ich benutze den Befehl BOQuery, um Daten aus meiner Datenbank zu lesen.
Dieser funktioniert im IE 6 auch meistens. Aber auf manchen Rechnern bei
uns in der Firma funktioniert er nicht. [...] Was muß ich installieren?
(Reiner Wahnsiedler in dcljs <ardkdn$d0q$07$1 (AT) news (DOT) t-online.com>)


Reply With Quote
  #5  
Old   
Mario Ramseier
 
Posts: n/a

Default Re: IE7 focus() und Dropdownmenü - 11-10-2007 , 05:36 AM



Thomas schrieb:

Quote:
Das verwundert nicht, gibt es doch kein HTML-Element, welches ein
autocomplete-Attribut hat. Ausserdem sind die Implementationen von
setAttribute() bekannt dafür, fehlerhaft zu sein. Dein Ansatz bzw.
der von Suckerfish ist ausserdem verkehrt -- Event-Bubbling existiert.

D.h. habe im Moment ne Browserweiche drin welche den Autofokus
auf das Textfeld bei allen Browsern ausser IE7 setzt.

Autofokus? Du velwechserst da offensichtlich etwas.
Jetzt hatte ich mich vertippt resp. den falschen Teil kopiert, das Problem
ist nicht der autocomplete Tag sondern (habe den übrigens durch
"autocomplete=off" im Input Element ersetzt, scheints auch zu tun)
folgender:
document.getElementById('searchbox').focus();
der den Focus auf das Suchfeld setzt.

Grüsse




Reply With Quote
  #6  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: IE7 focus() und Dropdownmenü - 11-10-2007 , 05:54 AM



Mario Ramseier wrote:
Quote:
Thomas 'PointedEars' Lahn schrieb:
Bitte in der Einleitungszeile den vollen Namen angeben. Es gibt viele Thomasse.

Quote:
Das verwundert nicht, gibt es doch kein HTML-Element, welches ein
autocomplete-Attribut hat. Ausserdem sind die Implementationen von
setAttribute() bekannt dafür, fehlerhaft zu sein. Dein Ansatz bzw.
der von Suckerfish ist ausserdem verkehrt -- Event-Bubbling existiert.

D.h. habe im Moment ne Browserweiche drin welche den Autofokus
auf das Textfeld bei allen Browsern ausser IE7 setzt.
Autofokus? Du velwechserst da offensichtlich etwas.

Jetzt hatte ich mich vertippt resp. den falschen Teil kopiert, das Problem
ist nicht der autocomplete Tag sondern (habe den übrigens durch
"autocomplete=off" im Input Element ersetzt, scheints auch zu tun)
`autocomplete' ist kein Tag, sondern ein Attribut. Und es ist in HTML 4.01
nicht spezifiziert, sondern eine Microsoft-Erfindung, weswegen es auch nur
im IE funktioniert. Wenn Du das Attribut in das Start-Tag schreibst, ist
Dein HTML ungültig[1]; Du solltest also die autocomplete-Eigenschaft (per
Script) setzen, wenn Du das unbedingt brauchst:

refToInput.autocomplete = "on";

Siehe [2].

Quote:
folgender:
document.getElementById('searchbox').focus();
der den Focus auf das Suchfeld setzt.
Schlechte Idee, Benutzer können dann ohne Zeigegerät nicht mehr scrollen.


PointedEars
___________
[1] http://validator.w3.org/
[2] http://msdn2.microsoft.com/en-us/library/ms533486.aspx
--
Von "funktionieren" kann also hier keine Rede sein. Ursache für Deinen
Irrtum ist wohl, dass auch Du annimmst, dass Ausprobieren von Spaghetticode
auf einem System oder wenigen Systemen ein sinnvoller Ersatz für saubere
Syntax und richtige Tests sei. -- Dietmar Meier, dcljs


Reply With Quote
  #7  
Old   
Mario Ramseier
 
Posts: n/a

Default Re: IE7 focus() und Dropdownmenü - 11-10-2007 , 06:33 AM



"Thomas 'PointedEars' Lahn" schrieb :

Quote:
folgender:
document.getElementById('searchbox').focus();
der den Focus auf das Suchfeld setzt.

Schlechte Idee, Benutzer können dann ohne Zeigegerät nicht mehr scrollen.
Eigentlich gehts mir ja nicht um den autocomplete (trotzdem danke für die
Tipps), sondern um das Problem des focus() und des Menüs.

Falls ich dann effektiv Benutzer ohne Maus (oder äquivalente Geräte) auf
meiner Page haben sollte, müsste sich diese mit dem Zwischenschritt "Tab"
behelfen um wieder zu scrollen. Trotz hochhaltung der Barrierefreiheit etc.
kann ich im Moment noch nicht für das letzte 0.1% optimieren.

Klar ist mir noch immer nicht, wieso das focus(), das Menü ausser Betrieb
setzt. (@Markus, im IE7 läuft es ohne den Javascript Tag ebenfalls nicht).
Bleibt mir wohl mittelfristig nichts anderes übrig, als auf ein anderes Menü
auszuweichen.

Grüsse




Reply With Quote
  #8  
Old   
Ralf Beutler
 
Posts: n/a

Default Re: IE7 focus() und Dropdownmenü - 11-11-2007 , 12:46 AM



Thomas 'PointedEars' Lahn schrieb:
Quote:
`autocomplete' ist [..] eine Microsoft-Erfindung,
das macht es nicht weniger nützlich.

Quote:
weswegen es auch nur im IE funktioniert.
An dieser Stelle irrst du:
http://developer.mozilla.org/en/docs...letion_Feature

br | rb
--
Sie freuten sich riesig, wenn eine Maschine nach sechs Stunden etwas
fertig brachte, wozu jeder Mensch auf der Straße für 2 Cent fähig
gewesen wäre. Anschließend ließen sie sich Bananen- und Sushi-Pizza
kommen und schliefen vor der Tastatur ein. [aus T.P., Heiße Hüpfer]


Reply With Quote
  #9  
Old   
Mario Ramseier
 
Posts: n/a

Default Re: IE7 focus() und Dropdownmenü - 11-15-2007 , 05:15 AM



"Ralf Beutler" schrieb:

Quote:
weswegen es auch nur im IE funktioniert.
An dieser Stelle irrst du:

http://developer.mozilla.org/en/docs...etion_Feature¨

Schade ist, es wurde nun viel über quoting und über 'autocomplete'
diskutiert, weniger aber über das Problem an sich.

Grüsse




Reply With Quote
  #10  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: IE7 focus() und Dropdownmenü - 11-15-2007 , 06:08 AM



Mario Ramseier wrote:
Quote:
"Ralf Beutler" schrieb:
weswegen es auch nur im IE funktioniert.
An dieser Stelle irrst du:

http://developer.mozilla.org/en/docs...etion_Feature¨

Schade ist, es wurde nun viel über quoting und über 'autocomplete'
diskutiert, weniger aber über das Problem an sich.
Lies den Thread nochmal in Ruhe. Dein Problem ist der von Dir benutzte
unsinnige Copy & Pray-Code (Suckerfish).


PointedEars
--
ich benutze den Befehl BOQuery, um Daten aus meiner Datenbank zu lesen.
Dieser funktioniert im IE 6 auch meistens. Aber auf manchen Rechnern bei
uns in der Firma funktioniert er nicht. [...] Was muß ich installieren?
(Reiner Wahnsiedler in dcljs <ardkdn$d0q$07$1 (AT) news (DOT) t-online.com>)


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.