diff --git a/example/index.html b/example/index.html new file mode 100644 index 0000000..2efea0a --- /dev/null +++ b/example/index.html @@ -0,0 +1,68 @@ + + + + + Example + + + + + + + <span> + + + +
+
+ +span + + + <span> + + + +

+ + + + + + + + diff --git a/package.json b/package.json index e5ef2a1..cb690dc 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,8 @@ "babelify": "^6.3.0", "browserify": "^11.2.0", "delegate-events": "^1.1.1", - "tiny-emitter": "^1.0.0" + "tiny-emitter": "^1.0.0", + "toggle-selection": "^1.0.4" }, "devDependencies": { "karma": "^0.13.10", diff --git a/src/clipboard-action.js b/src/clipboard-action.js index c8c1bcd..4c3ea84 100644 --- a/src/clipboard-action.js +++ b/src/clipboard-action.js @@ -1,3 +1,5 @@ +import deselectCurrent from 'toggle-selection'; + /** * Inner class which performs selection from either `text` or `target` * properties and then executes copy or cut operations. @@ -92,6 +94,7 @@ class ClipboardAction { this.selectedText = this.target.value; } else { + const reselectPrevious = deselectCurrent(); let range = document.createRange(); let selection = window.getSelection(); @@ -99,6 +102,8 @@ class ClipboardAction { range.selectNodeContents(this.target); selection.addRange(range); this.selectedText = selection.toString(); + + reselectPrevious(); } this.copyText();