2010-07-22 12 views

Antwort

0

implementieren beide: den Code, den FF und den Kodex supporing den IE unterstützt. Sie können Frameworks verwenden, um Code für beide Browser zu schreiben. Als das Framework wird die Arbeit der Aufspaltung der Unterschiede zwischen den Browsern tun.

Es ist traurig, aber Browser sind nicht 100% kompatibel!

20

Nein, gibt es nicht. IE hat seine TextRange Objekte, um die Aufgabe zu erledigen. IE> = 9 und alles andere für die letzte lange Zeit hat selectionStart und selectionEnd Eigenschaften auf Textareas und Texteingaben. Diese besondere Aufgabe ist es nicht so schlecht: Im Folgenden wird die aktuelle Auswahl löschen (falls vorhanden), Einfügen von Text an der Caret und neu zu positionieren die Einfügemarke unmittelbar nach dem Text eingefügt, in allen gängigen Browsern:

function insertTextAtCursor(el, text) { 
    var val = el.value, endIndex, range; 
    if (typeof el.selectionStart != "undefined" && typeof el.selectionEnd != "undefined") { 
     endIndex = el.selectionEnd; 
     el.value = val.slice(0, el.selectionStart) + text + val.slice(endIndex); 
     el.selectionStart = el.selectionEnd = endIndex + text.length; 
    } else if (typeof document.selection != "undefined" && typeof document.selection.createRange != "undefined") { 
     el.focus(); 
     range = document.selection.createRange(); 
     range.collapse(false); 
     range.text = text; 
     range.select(); 
    } 
} 
+0

Dank sehr, dachte, dass Browser in den letzten Jahren vielleicht weitergegangen sind, aber offensichtlich wählt IE immer noch, anders zu sein. – richw81

+1

Die gute Nachricht ist, dass IE 9 'selectionStart' und' selectionEnd' hat. –

+0

Dies funktionierte hervorragend für meine Implementierung in allen drei Browsern, das einzige Problem, das ich hatte, war ausgewählter Text zu ersetzen. Wenn ich val.slice (0, endIndex) durch val.slice (0, startIndex) ersetzt habe, gab es die Funktion, eine Auswahl hervorzuheben und durch den hinzugefügten Text zu ersetzen. Nur für andere, die die gleiche Funktionalität brauchten wie ich. – SomeoneRandom

Verwandte Themen