Entwickler-Ecke
Wünsche, Anregungen & Kritik - Buttons im Beitragseditor funktionieren nicht
Heiko - So 07.03.10 12:16
Titel: Buttons im Beitragseditor funktionieren nicht
Wenn man bei Opera im Beitragseditor auf z.B. "b" drückt, kommt in der Fehlerkonsole immer:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| Uncaught exception: TypeError: Cannot convert 'document.post.message.caretPos' to object
Error thrown at line 430, column 2 in isSelection() in http://www.delphi-forum.de/scripts/posting.js: return document.post.message.caretPos.text.length > 0; called from line 484, column 1 in bbstyle(bbid) in http://www.delphi-forum.de/scripts/posting.js: isSel = isSelection(); called from line 1, column 0 in <anonymous function>(event): bbstyle('b') |
Die anderen Buttons ergeben den gleichen Fehler (nur nen leicht anderen Stacktrace ;) ).
Christian S. - So 07.03.10 12:21
:autsch: Mach ich jetzt für die 3% der User, die Opera benutzen, noch eine Browserweiche für verschiedene Opera-Versionen? :gruebel: :?
Heiko - So 07.03.10 12:31
Nein - besserer Code würde da schon reichen :P
Aktuell:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| function isSelection() { document.post.message.focus(); if (is_ie4up) return document.selection.createRange().text != ''; else if (is_gecko) return document.post.message.selectionStart != document.post.message.selectionEnd; else if (is_opera) return document.post.message.caretPos.text.length > 0; else return false } |
Wie du siehst, scheitert hier genau die Opera-Code-Zeile. Ich kann dir zwar nicht sagen, warum caretPos nicht mehr existiert, aber chöner Code fragt nicht den Browser ab, sondern schaut, welche Features es gibt. Bei diesem Verfahren hätte Opera automatisch die FF-Version genommen, die scheinbar funktioniert (selectionStart kennt er zu mindestens, das End habe ich aber nicht getestet).
Neuer (ungetester) Code:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| function isSelection() { document.post.message.focus(); if (document.post.message.selectionStart) return document.post.message.selectionStart != document.post.message.selectionEnd; else if (ocument.post.message.caretPos) return document.post.message.caretPos.text.length > 0; else if (document.selection.createRange) return document.selection.createRange().text != ''; return false; } |
Regan - So 07.03.10 12:40
Christian S. hat folgendes geschrieben : |
| :autsch: Mach ich jetzt für die 3% der User, die Opera benutzen, noch eine Browserweiche für verschiedene Opera-Versionen? :gruebel: :? |
Ich glaube, die Frage ist eher, wann endlich alle Browser standardkonform werden.
Gausi - So 07.03.10 20:59
Also ich fänd das auch toll, wenn sich das bei Gelegenheit einbauen ließe. Ich gehör nämlich auch zu diesen 3%. :angel:
JoelH - Mo 08.03.10 09:54
Gausi hat folgendes geschrieben : |
| Ich gehör nämlich auch zu diesen 3%. :angel: |
Ich auch :)
Wie kann ich eigentlich diesen Fehler reproduzieren? Ich habs irgendwie nicht kapiert :(
jfheins - Mo 08.03.10 10:01
Auch für den Fix :angel:
Hab nämlich keine Lust, die die EE auch n Userscript zu schreiben ...
Heiko - Mo 08.03.10 11:47
JoelH hat folgendes geschrieben : |
| Wie kann ich eigentlich diesen Fehler reproduzieren? Ich habs irgendwie nicht kapiert :( |
Fehlerkonsole oder per Dragonfly (Seite->Entwicklerwerkzeuge)
BenBE - Mo 08.03.10 23:28
Gausi hat folgendes geschrieben : |
| Ich gehör nämlich auch zu diesen 3%. :angel: |
Kommt doch bitte erstmal über die 5%-Hürde, bevor ihr mitreden dürft :mrgreen:
Bin aber generell auch für die Feature-Check-based-Variante, da die i.A. am besten auch auf unbekannte Browser eingehen kann. Dann hat man u.U. sogar gleich nen Case, wo man Christian automatisch nen Object-Dump zuschicken lassen könnte, wenn alle Varianten fehlschlagen, d.h. der Browser unbekannt ist oder ein anderer Fehler auftritt. Ansonsten ist man geänderten Features doch nur unnötig ausgesetzt.
jfheins - Di 09.03.10 10:40
Ich fühle mich an meinen DP-Hack erinnert :mrgreen:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| window.opera.defineMagicFunction('isMicrosoft', function (oRealFunc, oThis, oParam1) { return true; } ); |
Immer diese Browserweichen :roll:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!