Fix jstoolbar to make buttons for h1, h2, <pre> etc. work in IE8
This commit is contained in:
parent
0ace77081d
commit
9e04bf83c0
|
@ -249,7 +249,29 @@ jsToolBar.prototype = {
|
||||||
suffix = suffix || '';
|
suffix = suffix || '';
|
||||||
var start, end, sel, scrollPos, subst, res;
|
var start, end, sel, scrollPos, subst, res;
|
||||||
if (typeof(document["selection"]) != "undefined") {
|
if (typeof(document["selection"]) != "undefined") {
|
||||||
sel = document.selection.createRange().text;
|
// just makes it work in IE8 somehow
|
||||||
|
var range = document.selection.createRange();
|
||||||
|
var bookmark = range.getBookmark();
|
||||||
|
var origParent = range.parentElement();
|
||||||
|
// we move the starting point of the selection to the last newline
|
||||||
|
try {
|
||||||
|
while (range.text[0] != "\n" && range.text[0] != "\r") {
|
||||||
|
bookmark = range.getBookmark();
|
||||||
|
range.moveStart("character", -1);
|
||||||
|
if (origParent != range.parentElement()) {
|
||||||
|
throw "Outside of Textarea";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
range.moveStart("character", 1);
|
||||||
|
} catch(err) {
|
||||||
|
if (err == "Outside of Textarea")
|
||||||
|
range.moveToBookmark(bookmark);
|
||||||
|
else
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
if (range.text.match(/ $/))
|
||||||
|
range.moveEnd("character", -1);
|
||||||
|
sel = range.text;
|
||||||
} else if (typeof(this.textarea["setSelectionRange"]) != "undefined") {
|
} else if (typeof(this.textarea["setSelectionRange"]) != "undefined") {
|
||||||
start = this.textarea.selectionStart;
|
start = this.textarea.selectionStart;
|
||||||
end = this.textarea.selectionEnd;
|
end = this.textarea.selectionEnd;
|
||||||
|
@ -271,7 +293,7 @@ jsToolBar.prototype = {
|
||||||
}
|
}
|
||||||
subst = prefix + res + suffix;
|
subst = prefix + res + suffix;
|
||||||
if (typeof(document["selection"]) != "undefined") {
|
if (typeof(document["selection"]) != "undefined") {
|
||||||
var range = document.selection.createRange().text = subst;
|
range.text = subst;
|
||||||
this.textarea.caretPos -= suffix.length;
|
this.textarea.caretPos -= suffix.length;
|
||||||
} else if (typeof(this.textarea["setSelectionRange"]) != "undefined") {
|
} else if (typeof(this.textarea["setSelectionRange"]) != "undefined") {
|
||||||
this.textarea.value = this.textarea.value.substring(0, start) + subst + this.textarea.value.substring(end);
|
this.textarea.value = this.textarea.value.substring(0, start) + subst + this.textarea.value.substring(end);
|
||||||
|
|
Loading…
Reference in New Issue