{"ScriptPreparationCode":"function nextNode(node) {\r\n if (node.hasChildNodes()) {\r\n return node.firstChild;\r\n } else {\r\n while (node \u0026\u0026 !node.nextSibling) {\r\n node = node.parentNode;\r\n }\r\n if (!node) {\r\n return null;\r\n }\r\n return node.nextSibling;\r\n }\r\n}\r\nfunction getRangeSelectedNodes(range) {\r\n var node = range.startContainer;\r\n var endNode = range.endContainer;\r\n // Special case for a range that is contained within a single node\r\n if (node == endNode) {\r\n return [node];\r\n }\r\n // Iterate nodes until we hit the end container\r\n var rangeNodes = [];\r\n while (node \u0026\u0026 node != endNode) {\r\n rangeNodes.push( node = nextNode(node) );\r\n }\r\n // Add partially selected nodes at the start of the range\r\n node = range.startContainer;\r\n while (node \u0026\u0026 node != range.commonAncestorContainer) {\r\n rangeNodes.unshift(node);\r\n node = node.parentNode;\r\n }\r\n return rangeNodes;\r\n}\r\nfunction getSelectedNodes() {\r\n if (window.getSelection) {\r\n var sel = window.getSelection();\r\n// console.log(window.getSelection())\r\n if (!sel.isCollapsed) {\r\n return getRangeSelectedNodes(sel.getRangeAt(0));\r\n }\r\n }\r\n return [];\r\n}\r\nfunction getSel(){\r\n var result=[];\r\n var selection=window.getSelection();\r\n for (var i=0; i\u003Cselection.rangeCount; i\u002B\u002B) result.push(selection.getRangeAt(i).cloneContents());\r\n return result;\r\n}\r\n\r\n\r\n\r\nfunction sel2(){\r\nvar selcRange = window.getSelection().getRangeAt(0);\r\n var containerElement = selcRange.commonAncestorContainer;\r\n if (containerElement.nodeType != 1) {\r\n containerElement = containerElement.parentNode;\r\n }\r\n var walk = document.createTreeWalker(containerElement, NodeFilter.SHOW_ALL,\r\n { acceptNode: function(node) {\r\n return selcRange.intersectsNode(node) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\r\n }\r\n }, false);\r\n var n = walk.nextNode();\r\n var s=[];\r\n while (n) {\r\n s.push(n);\r\n n = walk.nextNode();\r\n }\r\n return s;\r\n}\r\n\r\n \r\n ","TestCases":[{"Name":"1213123123","Code":"sel2()","IsDeferred":false},{"Name":"2312312","Code":"var k=1","IsDeferred":false}]}