![]() |
SELFHTML Forumsarchiv |
|
|
Die folgende Nachricht zum Thema stammt von: Freezer, 04. 10. 2007, 15:39
Hallo zusammen,
Ich zerbrech mir im moment so bisserl den Kopf und bin mir auch ned sicher ob das, was ich möchte, überhaupt möglich ist. Also, ich möchte gerne wenn ich auf ein Element in meinem Browser klicke, dass der gesamte Inhalt dieses Elements selektiert wird (damit ich das nicht manuell machen muss). Dahinter steckt die gleiche Systematik wie bei einer Textarea. Da der text in einer Textarea einfach ned sehr anschaulich ist, möchte ich versuchen es über diesen Weg zu lösen.
So hab ich mir mein HTML vorgestellt:
<p class="code" onclick="doSelect(this);">
<code>
Hier kommt mein Code rein.
</code>
</p>
Hat mir jemand einen Tipp wonach ich suchen muss um hier zum Erfolg zu kommen?
Freundliche Grüsse
Freezer
PS: Kennt wer ne Möglichkeit wie ich Typo3-Script anschaulich darstellen kann? (mit Farben etc.)
Die folgende Nachricht zum Thema stammt von: molily, 04. 10. 2007, 16:13
Hallo,
Schau mal hier:
/archiv/2007/8/t157769/#m1026406
Mathias
Die folgende Nachricht zum Thema stammt von: Freezer, 04. 10. 2007, 16:33
Vielen Dank.
Genau das wonach ich gesucht habe :D
Gruss
Die folgende Nachricht zum Thema stammt von: molily, 07. 10. 2007, 04:42
Hallo,
Ich muss meine Lösung korrigieren: Es ist mir aufgefallen, dass die gar nicht im Opera 9.23 und im neuesten 9.5-Alpha-Build 1600 funktioniert, ich aber groß dazugeschrieben hab, dass sie es würde.
Das liegt daran, dass Opera zwar die Firefox-Funktion selectAllChildren kennt, diese zeitigt keine Wirkung. Opera kennt aber die TextRanges aus dem Internet Explorer, allerdings nur über document.selection.createRange, nicht über document.body.createTextRange.
Wir kommen also zu dieser Funktion:function markieren (elem) {
if (document.selection && document.selection.createRange) {
var textRange = document.selection.createRange();
textRange.moveToElementText(elem);
textRange.select();
} else if (window.getSelection) {
var selection = window.getSelection();
selection.selectAllChildren(elem);
}
}
Erfolgreich getestet in Firefox 1.0.8, IE 6, Opera 9.23
Safari nicht getestet, Konqueror 3.5.7 steigt geordnet aus, weil er nix kann.
Testseite
(Zumindest »markieren3« muss markiert werden beim Überfahren mit der Maus.)
Archivsuche-Honeypot: Text, Inhalt, markieren, auswählen, selektieren, Markierung, Auswahl, ohne, Formular, Feld, input, textarea, kopieren
Mathias
Die folgende Nachricht zum Thema stammt von: Orlando, 07. 10. 2007, 23:35
»» Testseite(Zumindest »markieren3« muss markiert werden beim Überfahren mit der Maus.)
Safari 3 bzw. ein aktueller WebKit (r26101 von heute) markieren nichts, siehe auch Bug 13399. Verfügbare Objekte:
document.body.createTextRange: undefined
document.selection: undefined
window.getSelection: function
+ selection.selectAllChildren: undefined
Hilft dieser Workaround? d=window.getSelection()+'';
d=(d.length==0)?document.title:d;
alert(d);
Ergänzend noch Opera 9.50a Mac (build 4460):
document.body.createTextRange: undefined
document.selection: object
+ document.selection.createRange: function
+ TextRange.moveToElementText: function
+ TextRange.select: function
window.getSelection: function
+ selection.selectAllChildren: function
»» Archivsuche-Honeypot: Text, Inhalt, markieren, auswählen, selektieren, Markierung, Auswahl, ohne, Formular, Feld, input, textarea, kopieren
Cool, Tagging! *g*
Roland
--
Aquahu akbar!
Die folgende Nachricht zum Thema stammt von: molily, 07. 10. 2007, 23:49
Hallo,
Danke für die Tests!
»» document.body.createTextRange: undefined
»» document.selection: undefined
»» window.getSelection: function
»» + selection.selectAllChildren: undefined
Das sieht sehr schlecht aus. Damit kann ich nicht arbeiten...
»» Hilft dieser Workaround?
Leider gar nicht. Damit lässt sich der von Hand selektierte Text auslesen, aber nicht die Markierung setzen.
Mathias
© 1998-2006
Impressum, Software: Classic Forum