diff options
author | Kandrashin Denis <mail@lintest.ru> | 2012-09-18 17:51:28 +0400 |
---|---|---|
committer | Kandrashin Denis <mail@lintest.ru> | 2012-09-18 17:51:28 +0400 |
commit | 8235738c5e5e3447fa3bc6c4c319f41a332ad1af (patch) | |
tree | 2ca00e08bd912c4b4325efda1bba5559f57b849e /source/js | |
parent | b84717846943d3de38f1a7bf7bc4cd7567824cd6 (diff) |
Create section from selection
Diffstat (limited to 'source/js')
-rw-r--r-- | source/js/javascript.qrc | 1 | ||||
-rw-r--r-- | source/js/new_section.js | 26 |
2 files changed, 27 insertions, 0 deletions
diff --git a/source/js/javascript.qrc b/source/js/javascript.qrc index 7d4e058..8590381 100644 --- a/source/js/javascript.qrc +++ b/source/js/javascript.qrc @@ -6,5 +6,6 @@ <file>get_location.js</file> <file>set_cursor.js</file> <file>insert_title.js</file> + <file>new_section.js</file> </qresource> </RCC> diff --git a/source/js/new_section.js b/source/js/new_section.js new file mode 100644 index 0000000..db4e185 --- /dev/null +++ b/source/js/new_section.js @@ -0,0 +1,26 @@ +(function() { + if(window.getSelection().rangeCount){ + var selection = window.getSelection() + range = selection.getRangeAt(0) + + start = range.startContainer + end = range.endContainer + root = range.commonAncestorContainer + + if(start.nodeName.toLowerCase() == "body") return null + if(start.nodeName == "#text") start = start.parentNode + if(end.nodeName == "#text") end = end.parentNode + + if(start == end) root = start + + var range = document.createRange(); + range.setStartBefore(start); + range.setEndAfter(end); + + var newNode = document.createElement("div"); + newNode.className = "section"; + range.surroundContents(newNode); + + return newNode; + } +})() |