Comment and Uncomment
by Shashi Kumar Nagulakonda
HTML
<script src="http://rangy.googlecode.com/svn/trunk/dev/rangy-core.js"></script>
<div id="panel_html">HyperText Markup Language</div>
<div id="panel_js" e="d">JavaScript</div>
<div id="panel_css">Cascade Style Sheets</div>
CSS
div {
width: 200px;
height: 100px;
border: 5px solid grey;
display: inline-block;
}
JavaScript
$(document).keydown(keyDownHandler);
function keyDownHandler(e) {
if (e.ctrlKey && e.shiftKey && e.keyCode == 75) {
Comment();
} else if (e.ctrlKey && e.shiftKey && e.keyCode == 85) {
Uncomment();
}
}
function Comment() {
debugger;
rangy.init();
var sel = rangy.getSelection();
//For text nodes only
if (sel && sel.anchorNode && sel.anchorNode.nodeType === 3) {
var node = $(sel.anchorNode);
var text = node.text();
var openLen = Math.min(sel.focusOffset, sel.anchorOffset);
var closeLen = Math.max(sel.focusOffset, sel.anchorOffset);
var openComment = "";
var closeComment = "";
if (node.closest("#panel_html").length) {
openComment = "<--";
closeComment = "-->";
} else if (node.closest("#panel_js").length) {
openComment = "/*";
closeComment = "*/";
} else if (node.closest("#panel_css").length) {
openComment = "/*";
closeComment = "*/";
}
var openSel = text.substring(0, openLen);
var selText = text.substring(openLen, closeLen);
var closeSel = text.substring(closeLen);
var newText = openSel + openComment +
selText + closeComment + closeSel;
node.replaceWith(newText);
}
}
function Uncomment() {
debugger;
rangy.init();
var sel = rangy.getSelection();
//For text nodes only
if (sel && sel.anchorNode && sel.anchorNode.nodeType === 3) {
var node = $(sel.anchorNode);
var text = node.text();
var openLen = Math.min(sel.focusOffset, sel.anchorOffset);
var closeLen = Math.max(sel.focusOffset, sel.anchorOffset);
var openComment = "";
var closeComment = "";
if (node.closest("#panel_html").length) {
openComment = "<--";
closeComment = "-->";
} else if (node.closest("#panel_js").length) {
openComment = "/*";
closeComment = "*/";
} else if (node.closest("#panel_css").length) {
openComment = "/*";
closeComment = "*/";
}
var openSel = text.substring(0,...