Przeglądaj źródła

protect from exceptions in selected range + focus before insert image

Artal Druk 8 lat temu
rodzic
commit
9ca270f842
1 zmienionych plików z 12 dodań i 7 usunięć
  1. 12
    7
      src/ZSSRichTextEditor/ZSSRichTextEditor.js

+ 12
- 7
src/ZSSRichTextEditor/ZSSRichTextEditor.js Wyświetl plik

204
 
204
 
205
 zss_editor.backuprange = function(){
205
 zss_editor.backuprange = function(){
206
     var selection = window.getSelection();
206
     var selection = window.getSelection();
207
-    var range = selection.getRangeAt(0);
208
-    zss_editor.currentSelection = {"startContainer": range.startContainer, "startOffset":range.startOffset,"endContainer":range.endContainer, "endOffset":range.endOffset};
207
+    if(selection && selection.length > 0) {
208
+        var range = selection.getRangeAt(0);
209
+        zss_editor.currentSelection = {"startContainer": range.startContainer, "startOffset":range.startOffset,"endContainer":range.endContainer, "endOffset":range.endOffset};
210
+    }
209
 }
211
 }
210
 
212
 
211
 zss_editor.restorerange = function(){
213
 zss_editor.restorerange = function(){
212
     var selection = window.getSelection();
214
     var selection = window.getSelection();
213
-    selection.removeAllRanges();
214
-    var range = document.createRange();
215
-    range.setStart(zss_editor.currentSelection.startContainer, zss_editor.currentSelection.startOffset);
216
-    range.setEnd(zss_editor.currentSelection.endContainer, zss_editor.currentSelection.endOffset);
217
-    selection.addRange(range);
215
+    if(selection && selection.length > 0) {
216
+        selection.removeAllRanges();
217
+        var range = document.createRange();
218
+        range.setStart(zss_editor.currentSelection.startContainer, zss_editor.currentSelection.startOffset);
219
+        range.setEnd(zss_editor.currentSelection.endContainer, zss_editor.currentSelection.endOffset);
220
+        selection.addRange(range);
221
+    }
218
 }
222
 }
219
 
223
 
220
 zss_editor.getSelectedNode = function() {
224
 zss_editor.getSelectedNode = function() {
504
 }
508
 }
505
 
509
 
506
 zss_editor.insertImage = function(url, alt) {
510
 zss_editor.insertImage = function(url, alt) {
511
+    zss_editor.focusContent();
507
     zss_editor.restorerange();
512
     zss_editor.restorerange();
508
     var html = '<img src="'+url+'" alt="'+alt+'" />';
513
     var html = '<img src="'+url+'" alt="'+alt+'" />';
509
     zss_editor.insertHTML(html);
514
     zss_editor.insertHTML(html);