Estou fazendo um sistema de administração e nele da pra inserir negrito, itálico, links e aquele monte de coisas que se faz como aqui no fórum.
Eu usava um script que ele pegava o texto selecionado de qualquer parte e quando eu clicasse no estilo, ele mudava pro selecionado, problema é que só funciona no Internet Explorer, a função secundária pra mozilla não funciona.
No caso seria este:
function mozWrap(lft, rgt) { alert(document.content.selection.textLength); var selLength = document.content.texto.textLength; var selStart = document.content.texto.selectionStart; var selEnd = document.formulario.content.selectionEnd; if (selEnd==1 || selEnd==2) selEnd=selLength; var s1 = (document.content.texto.value).substring(0,selStart); var s2 = (document.content.texto.value).substring(selStart, selEnd) var s3 = (document.content.texto.value).substring(selEnd, selLength); document.content.texto.value = s1 + lft + s2 + rgt + s3; } function IEWrap(lft, rgt) { strSelection = document.selection.createRange().text; if (strSelection!="") { document.selection.createRange().text = lft + strSelection + rgt; } else { document.formulario.texto.focus() strSelection = document.selection.createRange().text; document.formulario.texto.value = document.formulario.texto.value + lft + rgt; } } function wrapSelection(lft, rgt) { //if (document.all) {IEWrap(lft, rgt);} //else if (document.getElementById) {mozWrap(lft, rgt);} mozWrap(lft, rgt); } function wrapSelectionWithLink() { var my_link = prompt("Enter URL:","http://"); if (my_link != null) { lft="<a href=\"" + my_link + "\">"; rgt="</a>"; wrapSelection(lft, rgt); } return; }
O uso seria assim: <a href="#self" onclick="wrapSelection('[N]','[/N]'); this.blur();">[N]</a>
O amigo Klaus me indicou um outro site que continha um script genérico, porém eu descobri que só funciona pra pegar o texto selecionado se usar onmouseup, caso use ele clicando no link, no FireFox não funciona.
function getSel() { var txt = ''; var foundIn = ''; if (window.getSelection) { txt = window.getSelection(); foundIn = 'window.getSelection()'; } else if (document.getSelection) { txt = document.getSelection(); foundIn = 'document.getSelection()'; } else if (document.selection) { txt = document.selection.createRange().text; foundIn = 'document.selection.createRange()'; } else return; //document.forms[0].selectedtext.value = 'Found in: ' + foundIn + '\n' + txt; document.getElementById( "descricao" ).value = txt; }
Uso: <a href="java script:;" onclick="getSel();">[N]</a>
Sem contar que neste ai tem que definir daonde que caixa ele irá pegar a seleção, já no primeiro, ele pega de qualquer lugar =]
Gostaria que me dessem opniões de como posso arrumar isto, mechi, revirei mas não consegui arrumar =]
Obrigado