Autor Beitrag
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: So 07.03.10 12:16 
Wenn man bei Opera im Beitragseditor auf z.B. "b" drückt, kommt in der Fehlerkonsole immer:

ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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: :?

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: So 07.03.10 12:31 
Nein - besserer Code würde da schon reichen :P

Aktuell:
ausblenden 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: So 07.03.10 12:40 
user profile iconChristian S. hat folgendes geschrieben Zum zitierten Posting springen:
: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.
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: So 07.03.10 18:28 
user profile iconHeiko hat folgendes geschrieben Zum zitierten Posting springen:
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).


user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Ich glaube, die Frage ist eher, wann endlich alle Browser standardkonform werden.

Sie arbeiten ja anscheinend dran ;)

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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:

_________________
We are, we were and will not be.
JoelH
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 806
Erhaltene Danke: 17

Win10
Delphi Alexandria 11.2 Patch 1
BeitragVerfasst: Mo 08.03.10 09:54 
user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Ich gehör nämlich auch zu diesen 3%. :angel:


Ich auch :)

Wie kann ich eigentlich diesen Fehler reproduzieren? Ich habs irgendwie nicht kapiert :(

_________________
mfg. Joel
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Mo 08.03.10 11:47 
user profile iconJoelH hat folgendes geschrieben Zum zitierten Posting springen:
Wie kann ich eigentlich diesen Fehler reproduzieren? Ich habs irgendwie nicht kapiert :(

Fehlerkonsole oder per Dragonfly (Seite->Entwicklerwerkzeuge)
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mo 08.03.10 23:28 
user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
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.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: Di 09.03.10 10:40 
Ich fühle mich an meinen DP-Hack erinnert :mrgreen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
window.opera.defineMagicFunction('isMicrosoft',
  function (oRealFunc, oThis, oParam1)
  {
    return true;
  }
);

Immer diese Browserweichen :roll: