Mr. Snoot
Mitglied
Registriert: 31.08.2009
Beiträge: 1
|
|
edit: Problem gelöst. Aus optischen Gründen hatte ich die Liste die zurückgegeben wird mit Zeilenumbrüchen \n und Tabstopps \t eingerückt. Dadurch hat Opera das falsche Element angesprochen. Jetzt weiß ich auch, warum es früher mal funktioniert hat und seit ich eigentlich nichts geändert hatte, in Opera nicht mehr. Tja, Tabstopps und Zeilenumbrüche sind eben doch etwas und nicht nichts.
Allerdings sollten Whitespaces u.ä. automatisch entfernt werden, dazu gabs eine Funktion im JS:
Code:
function clearSpaces (strOut)
{
strOut = strOut.replace(/li>\s+/gm,'li>');
strOut = strOut.replace(/\s+<li/gm,'<li');
strOut = strOut.replace(/li>\s+<li/gm,'li><li');
return strOut;
}; |
Naja egal, es läuft :D
Hio,
ich habe hier eine "http://www.halbleiter.org/suche/" (Suchfunktion) mit einem Suggestscript, welches in jedem Browser, außer in Opera korrekt funktioniert.
Wenn man einen Suchbegriff eingibt, klappt die Liste mit Vorschlägen auf, welche man dann mit der Tastatur (Pfeil rauf/runter) auswählen kann. gleichzeitig wird die Hintergrundfarbe des ausgewählten Elements von weiß auf blau geändert.
In Opera muss man aber a) zwei mal hoch/runter drücken, damit ein Eintrag selektiert wird und b) die Hintergrundfarbe wird nicht mehr auf weiß zurückgesetzt wenn man das nächste Element markiert. Die Fehlerkonsole liefert mir dabei auch Fehler, die ich aber nicht so ganz verstehe.
Beim ersten Drücken (wo also noch nichts markiert wird) kommt da:
Error: name: TypeError message: Statement on line 125: Cannot convert undefined or null to Object Backtrace: Line 125 of linked script http://www.halbleiter.org/javascript/key.js: In function keyPressed document.getElementById(txt_id).value = curElement.firstChild.id; ... Line 28 of linked script http://www.halbleiter.org/javascript/key.js: In function handleEvent callBack.call(callBack,event,target,(returnParams)?returnParams:null); | Beim zweiten Mal, also dann, wenn das Element markiert wurde:
Error: name: TypeError message: Statement on line 117: Cannot convert undefined or null to Object Backtrace: Line 117 of linked script http://www.halbleiter.org/javascript/key.js: In function keyPressed curElement.previousSibling.style.color = '#000'; ... Line 28 of linked script http://www.halbleiter.org/javascript/key.js: In function handleEvent callBack.call(callBack,event,target,(returnParams)?returnParams:null); ... | Das scheint auch immer so weiter zugehen. Beim ersten Drücken der erste Fehler, beim zweiten der andere.
Google liefert mir zu Cannot convert undefined or null to Object den Hinweis, dass wohl eine ID nicht korrekt übergeben wurde, was bei mir aber eigentlich der Fall ist. In meinem Suchformular habe ich folgendes:
| <input type="text" id="eingabe" name="searchexp" tabindex="1" onkeyup="load(this, 'autocomplete', 'eingabe', event)"> |
Die Funktion load() übergibt also die Eingabe-ID eingabe, welche im Script "http://www.halbleiter.org/javascript/autocomplete.js" (autocomplete.js) als txt_id übernommen wird:
| function load(suchbegriff, div_id, txt_id, e) { ... |
Und das wird dann wiederum als Funktion keynavigation an die in der Fehlermeldung aufgeführte "http://www.halbleiter.org/javascript/key.js" (key.js) weitergegeben.
Also müsste doch eigentlich alles vorhanden sein - was gefällt Opera denn daran nicht?
Beitrag geändert von Mr. Snoot (31.08.2009 21:42:19)
|
|
| 31.08.2009 18:49:33 |
|