Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mbb

document.selection.createRange();

Recommended Posts

Pessoal to com esse script que to fazendo mas travei o document.selection.createRange(); não funciona.... pq ?<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Untitled Document</title></head><body>Navio zezeze </body></html><script>function hello(str) { if (parseInt(navigator.appVersion)<4) return; var strFound; if (navigator.appName=="Netscape") { // NAVIGATOR-SPECIFIC CODE strFound=self.find(str); if (!strFound) { strFound=self.find(str,0,1) while (self.find(str,0,1)) continue } } if (!strFound) alert ("String '"+str+"' not found!")//-->}hello('Navio')function addTags(){ if ( document.selection ) var range = document.selection.createRange(); var newHTML = "<b>" + range.text + "</a>"; range.pasteHTML(newHTML); }addTags()</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa função copia dados para o clipboard

 

há uma incompatibilidade entre os browsers, por isso v deve fazer uma validação e verificar qual funcao é suportada pelo browser

 

exemplo:

text = (document.all) ? document.selection.createRange().text : document.getSelection();

 

obs: no final do ano passado foi descoberto um bug no firefox 2.0 versao linux

onde o uso do createRange() poderia causar um crash.

 

muitos usuarios ainda possuem a versao com o bug.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara apavoro....Mas não rolou pq? da esse erro :Erro: range.pasteHTML is not a functionArquivo-fonte: file:///C:/Documents%20and%20Settings/mbiasi/Desktop/teste.htmlLinha: 44coloquei assim :function addTags(){var range = (document.all) ? document.selection.createRange().text : document.getSelection();var newHTML = "<b>" + range.text + "</b>";range.pasteHTML(newHTML);}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria aletrar o texto que foi selecionado pelo "function hello" e colocar ele negrito "<b>" ou outra propiedade que eu quera tipo transforma o mesmo em um link com "<a href="#">"....

Compartilhar este post


Link para o post
Compartilhar em outros sites

mbb,

 

você escreveu errado.

 

 

var range = (document.all) ? document.selection.createRange().text : document.getSelection();
deveria ser assim:

 

var browser_accept = (document.all) ? range = document.selection.createRange().text : range = document.getSelection();

Compartilhar este post


Link para o post
Compartilhar em outros sites

mesmo assim nada feito da o erro ele da erro falando:Erro: range.pasteHTML is not a function...<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Untitled Document</title></head><body>Navio zezeze</body></html><script>function hello(str) {if (parseInt(navigator.appVersion)<4) return;var strFound;if (navigator.appName=="Netscape") {// NAVIGATOR-SPECIFIC CODEstrFound=self.find(str);if (!strFound) {strFound=self.find(str,0,1)while (self.find(str,0,1)) continue}}if (!strFound) alert ("String '"+str+"' not found!")//-->}hello('Navio')function addTags(){var browser_accept = (document.all) ? range = document.selection.createRange().text : range = document.getSelection();alert(range);var newHTML = "<b>" + range + "</b>";range.pasteHTML(newHTML);}addTags()</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

por quê você colocou isso ?

range.pasteHTML(newHTML);

por quê você colocou isso ?

range.pasteHTML(newHTML);

por quê você colocou isso ?

range.pasteHTML(newHTML);

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou perguntando porque a sintaxe que você usou nao tem lógica nenhuma.

 

range.pasteHTML(newHTML);
você está chamando um evento de uma função que não existe como se a variável range fosse um objeto.

 

 

nesse trecho final você só precisa fazer isso:

 

 

disso aqui

alert(range);var newHTML = "<b>" + range + "</b>";range.pasteHTML(newHTML);

troca pra isso

//alert(range);return "<b>" + range + "</b>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

hinom antes de mais nada quero agradecer a ajuda ....Coloquei da maneira que você espesificou e mesmo assim não funcionou... ele não alterou o texto...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, tenho esse js que funciona IE e ele faz exatamente o que eu quero mas não funcina no FF... sera tem como?<html><head><title>Destacar Ocorrência</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body bgcolor="#FFFFFF" text="#000000"><font face="Verdana, Arial, Helvetica, sans-serif"><font size="2"><style>.change { font-weight: bold; background-color: #FFFF99}</style>Digite uma palavra que queira destacar na página<input name="tochange"><input onClick="ChangeText()" type="button" value="encontrar" name="button"></font></font><hr size="1"><font face="Verdana, Arial, Helvetica, sans-serif"><font size="2"><br><br>Este texto é apenas um teste para você testar este javascript. Ébem diferente, nuncatinha visto nada igual, pode ser que seja útil a você.Basta digitar um apalavra na caixa de texto acima, e clicar no botão "encontrar",que ela ficará <span class="change">assim</span>. </font></font><script>function ChangeText() {var newText = document.body.createTextRange();if (tochange.value != "")while (newText.findText(tochange.value) )newText.pasteHTML("<FONT class=change>" + tochange.value +"</FONT>");}</script></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, tenho esse js que funciona IE e ele faz exatamente o que eu quero mas não funcina no FF... sera tem como?<html><head><title>Destacar Ocorrência</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body bgcolor="#FFFFFF" text="#000000"><font face="Verdana, Arial, Helvetica, sans-serif"><font size="2"><style>.change { font-weight: bold; background-color: #FFFF99}</style>Digite uma palavra que queira destacar na página<input name="tochange"><input onClick="ChangeText()" type="button" value="encontrar" name="button"></font></font><hr size="1"><font face="Verdana, Arial, Helvetica, sans-serif"><font size="2"><br><br>Este texto é apenas um teste para você testar este javascript. Ébem diferente, nuncatinha visto nada igual, pode ser que seja útil a você.Basta digitar um apalavra na caixa de texto acima, e clicar no botão "encontrar",que ela ficará <span class="change">assim</span>. </font></font><script>function ChangeText() {var newText = document.body.createTextRange();if (tochange.value != "")while (newText.findText(tochange.value) )newText.pasteHTML("<FONT class=change>" + tochange.value +"</FONT>");}</script></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

a funcçao pasteHTML não foi implementada no firefoxterá que fazer uma gambiarra nesse trechobusque no google que encontrará milhares de soluçõeskey-words - pasteHTML firefox - findText Firefox

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.