In the previous question, someone put me on "rangy" http://code.google.com/p/rangy/ . This is interesting, even if I do not quite understand it. I am not a person with JavaScript. Nevertheless, I managed to do everything I need with it, with the exception of 1. The concept is very simple RTE, just bold, italic, etc. I succeeded, created a link made too, OK, that maybe the guy JS took 2 minutes took me hours and hours - disappointment, but I think that I study a little - very slowly. Anyway, using rangy, I can create (sorry bad code) an href link like this:
$('#linkbut').live('click',function(){
var sel = rangy.getSelection();
var range = sel.getRangeAt(0);
range.splitBoundaries();
var textNodes = range.getNodes([3]);
for (var i = 0, len = textNodes.length; i < len; ++i) {
var newLink = document.createElement('a');
newLink.setAttribute('href','test.html');
var linkText = document.createTextNode(sel);
var parent = textNodes[i].parentNode;
parent.insertBefore(newLink,textNodes[i]);
newLink.appendChild(linkText);
range.deleteContents();
}
});
#linkbut - HTML, href (test.html) " ". , , "" , .
: , , "" - , " ":
$('#deletelink').live('click',function(){
var sel = rangy.getSelection();
var range = sel.getRangeAt(0);
range.splitBoundaries();
var textNodes = range.getNodes([3]);
var txt = sel.toString();
range.deleteContents();
var replaceText = document.createTextNode(txt);
sel.appendChild(replaceText);
});
, (, ), , "" , node , :
- -
sel = rangy.getSelection(); - "sel"
var txt = sel.toString(); - -
a range.deleteContents(); - var replaceText = document.createTextNode(txt); sel.appendChild(ReplaceText);
" " , " ".
, - ;)