Hallo,
wenn man mit Chrome in einem Beitrag ein Hyperlink auf ein Wort setzen will (Wort markieren -> Hyperlink einfügen), erscheint das markierte Wort im JavaScript-Prompt ("Gib einen Linknamen ein (optional)") nicht. Wenn man den Namen (sowie Adresse) von Hand reinschreibt und auf OK klickt wird der resultierende BB-Code an das Ende des Beitrags angehängt.
Gruss
tscherno
Hallo tscherno,
tja, es ist die Frage, ob das ein Bug des Editors oder von Chrome ist. Ich würde erstmal auf letzeres tippen, denn Chrome ist ja meines Wissens noch Beta. Ich würde mich freuen, wenn du den Fehler zunächst bei Google melden würdest.
herbivore
Ist bei Safari (Apple und Windows) auch so.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Hallo,
Ist bei Safari (Apple und Windows) auch so.
Das wird wohl daran liegen das Chrome genauso wie Safari WebKit als Rendering-Engine verwendet.
Ich habe den Fehler etwas isoliert und ein kleines Testcase zusammengeschustert. Werde es morgen mal Google zukommen lassen.
Gruss
tscherno
Hallo,
habe das jetzt mal in den Bugtracker von Google eingetragen.
Die schreiben folgendes:
The issue is that there is no textLength property for HTMLTextAreaElement, so the
condition 'message.textLength ≥ 0' in the function 'getSelectedText' is false, which
means that the default value to the prompt is never set to the selected text.I'm not sure if the textLength property is something that should be supported, so
I'll leave this bug open.
Das sagt mir so gut wie garnichts weil ich ein JavaScript-Noob bin. ^^
Gruss
tscherno
Hallo tscherno,
vielen Dank für deine Mühe. Ich habe mir das jetzt mal genauer angeguckt. textLength ist in der Tat eine Erweiterung der Mozilla-Browser. Deshalb gibt es in der BBCode-Funktion mehrere Anschnitte für verschiedene Browser.
textLength wird nur im ersten Abschnitt für Mozilla-Browser benutzt. Das Fehlen dieser Eigenschaft ist also noch nicht die alleinige Ursache des Verhaltens von Chrome.
Es gibt auch einen Abschnitt für den IE. Auch dieser Code-Abschnitt benutzt Properties, die nicht im Standard enthalten sind. Deshalb vermute ich, dass der Code sich für Chrome nicht verwenden lässt. Aufgerufen wird er aber wohl ohnehin nicht, weil er ja eben nur für den IE gedacht ist.
Bleibt der letzte Abschnitt, der für alle übrigen Browser verwendet wird. Dieser arbeitet genau so wie du es beschrieben hast. Sprich: Works as designed.
Da der DCOM-Standard für das HTMLTextAreaElement sehr mager ist und man - soweit ich das sehe - weder Properties für die Länge, noch für den selektierten Text, noch für die aktuelle Cursor-Position hat, sehe ich erstmal keine Möglichkeit, mehr als die beschriebene Funktionalität anzubieten.
Eine Möglichkeit würde nur dann bestehen, wenn Chrome die genanten Properties - vielleicht unter anderem Namen oder auf andere Weise - doch zur Verfügung stellt. Darüber habe ich jedoch erstmal nichts gefunden.
Wenn jemand darüber etwas genaueres weiß, kann er es mir gerne schreiben. Vielen Dank!
Ich bin ja ein großer Fan von Webstandards. Hier bietet der Standard jedoch anscheinend zu wenig, um den gewohnten Komfort browserunabhängig zu realisieren. Deshalb steht browserunabhängig nur die beschriebene Minimalfunktionalität zur Verfügung.
Diese wohl wissend, kann man sich natürlich darauf einstellen, indem man den Linknamen gar nicht erst in die TextBox des Editors schreibt, sondern gleich auf den Button "Hyperlink einfügen" geht und zwar solange man mit dem Cursor sowieso noch am Ende des Textes steht.
herbivore