gulli:board Logo

Anzeige


  Antwort
metoo2 Spender
* * * * *
 
Benutzerbild von metoo2
 
Registrierungsdatum: Apr 2006
Beiträge: 1.211
Firefox 2 - Cursor steht nicht mehr automatisch im Eingabefeld einer Seite!

Hi,

sorry aber mir ist für das Problem kein besserer Titel eingefallen. Ich schildere es euch hier noch einmal genauer:

Also, ich nutze den FF2 und wenn ich z.B. www.ebay.de aufrufe steht der Cursor leider nicht automatisch in dem "Suche-Feld" der Page.
Wenn ich www.google.de aufrufe steht der Cusor direkt im Suche-Feld und ich kann direkt einen Suchebegriff eingeben.

Ist dies eine Einstellung von der ebay Seite oder kann ich dies mit dem FF beeinflussen?

Ich meine mich erinnern zu können das der FF 1.5 das bei Ebay nämlich vorher nicht sio gehandhabt hat.


Viele Grüße!
Alt 19. 05. 2007, 16:17 metoo2 is offline Mit Zitat antworten #1
aNtiCHrist
Moderator
 
Benutzerbild von aNtiCHrist
 
Registrierungsdatum: May 2000
Beiträge: 16.128
Re: Firefox 2 - Cursor steht nicht mehr automatisch im Eingabefeld einer Seite!

Der Browser macht soetwas von sich aus nicht, das muss wenn schon ein JavaScript auf der Seite machen.

Auf der Seite wird zwar nach dem Laden die Funktion vielversprechende Funktion queryFocus() aufgerufen, allerdings kann ich deine Beobachtung reproduzieren. Wenn man sich dann mal in einem Debugger anguckt, was die Funktion macht, wird auch klar warum.

Die Webdeppen bei eBay kennen offenbar nicht den Unterschied zwischen dem name- und dem id-Attribut, denn sie lassen das Script nach Elementen mit den ids search_form, searchform (man ist offenbar in der Schreibweise nicht so festgelegt ...), query und satitle. Wenn man mal in den HTML-artigen Code guckt, den man unter http://www.ebay.de/ findet, stellt man fest, dass es keine solchen Elemente gibt. Die Funktion stellt das ebenfalls fest und tut ganz einfach nichts.

Hier mal die Funktion, die Formatierung ist nicht meine Idee, das steht da wirklich so in der Datei ...
Code:
function queryFocus() {var oD=ebay.oDocument;if(oD.getQueryValue("searchfocus=off")=="") {var oForm=oQuery=oTitle=null;if(oD.getUIElem('search_form')) oForm=oD.getUIElem('search_form');else if(oD.getUIElem('searchform')) oForm=oD.getUIElem('searchform');if(oForm) {oQuery=oForm.query;oTitle=oForm.satitle;} else {oQuery=oD.getUIElem('query');oTitle=oD.getUIElem('satitle');} if(oQuery) oQuery.focus();else if(oTitle) oTitle.focus();}}
Da die ganzen getUIElem()-Aufrufe keine passenden Objekte finden und null zurückliefern, bleibt oQuery und oTitle immer null und es wird keine focus()-Methode aufgerufen, von welchem Element auch?

Warum es im IE dennoch funktioniert? Der IE hat wohl einen Bug, der unter bestimmten Bedingungen dazu führt, dass document.getElementById() auch dann fündig wird, wenn ein Element mit einem name-Attribut mit dem angegebenen Wert ausgestattet ist. Unter welchen Bedingungen das Auftritt, ist mir nicht bekannt, aber ein Aufruf von javascript:alert(document.getElementById('search_form')); in der Adressleiste liefert im IE ein [object] zurück, während SeaMonkey mir hier wie zu erwarten null liefert. Möglicherweise hat Firefox 1.5 diesen Bug aber nachgeahmt, sodass es dort funktionierte.

Falls dich das stört, solltest du dich an eBay wenden, deren Code ist fehlerhaft. Alternativ kannst du dir auch ein Greasemonkeyscript schreiben, das das die Aktionen von queryFocus() mit getElementsByName(string)[0] anstatt getUIElem(string) durhführt.
Alt 19. 05. 2007, 22:34 aNtiCHrist is offline Mit Zitat antworten #2
Themen-Optionen Antwort


Themen-Optionen

Gehe zu



Alle Zeitangaben in UTC +1. Es ist jetzt 14:43 Uhr.
Angetrieben von vBulletin
Copyright ©2000 - 2006, Jelsoft Enterprises Ltd.
paranoia.gullisys.net

Anmelden

Benutzername
Kennwort
© Copyright 1998-2008 gulli.com home | regeln | sitemap | kontakt | impressum | partner | downloads | disclaimer |
Message Boards and Forums Directory