Código HTML :
<div> <textarea id="sup" rows="4"></textarea><br> <!-- texto que se mantendra estatico --> <div style="display: none" id="textfijo"> prueba de texto fijo</div> <div id="alert"></div> </div> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> $('#sup').focus(); function autorun(){ $('div').on('mousedown', '#sup', function(e){ var ele = document.getElementById ("sup"); if ('selectionStart' in ele) { if(ele.selectionStart > $(this).val().length-$('#textfijo').text().length){ document.oncontextmenu = function(){return false} ele.selectionStart = $(this).val().length-$('#textfijo').text().length; ele.selectionEnd = $(this).val().length-$('#textfijo').text().length; }else{ document.oncontextmenu = function(){return true} } } }); $('div').on('click', '#sup', function(e){ var ele = document.getElementById ("sup"); if ('selectionStart' in ele) { if(ele.selectionStart > $(this).val().length-$('#textfijo').text().length){ ele.selectionStart = $(this).val().length-$('#textfijo').text().length; ele.selectionEnd = $(this).val().length-$('#textfijo').text().length; } } }); $('div').on('keydown', '#sup', function(e){ var ele = document.getElementById ("sup"); if ('selectionStart' in ele) { if(e.keyCode!=37 && e.keyCode!=38 && e.keyCode!=39 && e.keyCode!=40){ $('#alert').text(ele.selectionStart); if (ele.selectionStart > $(this).val().length-$('#textfijo').text().length) { $(this).val($(this).val().substring(0, $(this).val().length-$('#textfijo').text().length)); } ele.focus (); }else{ } } }); $('div').on('keyup', '#sup', function(e){ var ele = document.getElementById ("sup"); if ('selectionStart' in ele) { if(e.keyCode!=37 && e.keyCode!=38 && e.keyCode!=39 && e.keyCode!=40 && e.keyCode!=35){ if (ele.selectionStart > $(this).val().length-$('#textfijo').text().length){ $(this).val($(this).val()+$('#textfijo').text()); ele.selectionStart = $(this).val().length-$('#textfijo').text().length; ele.selectionEnd = $(this).val().length-$('#textfijo').text().length; // $('#alert').text($(this).val().replace(/hola/g, '')); ele.focus (); } }else{ if(ele.selectionStart > $(this).val().length-$('#textfijo').text().length){ ele.selectionStart = $(this).val().length-$('#textfijo').text().length; } } } }); } if (document.addEventListener) document.addEventListener("DOMContentLoaded", autorun, false); else if (document.attachEvent) document.attachEvent("onreadystatechange", autorun); else window.onload = autorun; </script>