[FIX] web_editor: range is null if focus outside of editor

The range can be null if the focus is not in the editor at serveral
places.

closes #8845
This commit is contained in:
Markus Mattes
2015-10-09 08:43:37 +02:00
committed by Nicolas Lempereur
parent 0b18941e33
commit e80e1e1c28
@@ -997,6 +997,7 @@ $.summernote.pluginEvents.insertTable = function (event, editor, layoutInfo, sDi
var $editable = layoutInfo.editable();
var dimension = sDim.split('x');
var r = range.create();
if (!r) return;
r = r.deleteContents();
var isBodyContainer = dom.isBodyContainer;
@@ -1530,6 +1531,7 @@ $.summernote.pluginEvents.insertUnorderedList = function (event, editor, layoutI
var parent;
var r = range.create();
if (!r) return;
var node = r.sc;
while (node && node !== $editable[0]) {
@@ -1630,6 +1632,7 @@ $.summernote.pluginEvents.indent = function (event, editor, layoutInfo, outdent)
var $editable = layoutInfo.editable();
$editable.data('NoteHistory').recordUndo($editable);
var r = range.create();
if (!r) return;
var flag = false;
function indentUL (UL, start, end) {
@@ -1842,6 +1845,7 @@ $.summernote.pluginEvents.removeFormat = function (event, editor, layoutInfo, va
document.execCommand('removeFormat');
document.execCommand('removeFormat');
var r = range.create();
if (!r) return;
r = dom.merge(node, r.sc, r.so, r.ec, r.eo, null, true);
range.create(r.sc, r.so, r.ec, r.eo).select();
event.preventDefault();
@@ -2132,6 +2136,7 @@ $.summernote.pluginEvents.foreColor = function (event, editor, layoutInfo, foreC
$.summernote.pluginEvents.backColor = function (event, editor, layoutInfo, backColor) {
var $editable = layoutInfo.editable();
var r = range.create();
if (!r) return;
if (r.isCollapsed() && r.isOnCell()) {
var cell = dom.ancestor(r.sc, dom.isCell);
cell.className = cell.className.replace(new RegExp('(^|\\s+)bg-[^\\s]+(\\s+|$)', 'gi'), '');