Erro javaScript com JSF

7 respostas
obs

Olá pessoal,

Eu fiz uma função javascript em uma aplicação jsf para mostar um alert, até aí tudo bem! mas ao exibir a mensagem o browser não está interpretando as palavras com acentuação.

Ex.: alert(“confirmação”); o browser exibe: “c o n f i r m a & # 2 3 1 ; & # 2 2 7 ; o”

já tentei colocar com caracter especial (c o n f i r m a & c c e d i l ; & a t i l d e ; o) e nada, além de verificar a codificação (Unicode-UTF-8)

Alguem já passou por essa situação?

7 Respostas

G

Tenta ISO-8859-1

marciobarroso

Eu tive um problema desses …

Resolví com a função abaixo :

Ela esta em um exemplo para vc ver o funcionamento.

<html>
<head>
<script language="JavaScript">
function get() {
	var theText = document.getElementById('txt').value;
	var text = '';
	var arr = new Array();

	for( i=0; i &lt theText.length; i++ ){
		arr[i] = theText.charCodeAt(i);
		text += String.fromCharCode(arr[i]);
	}
	alert(arr);
	alert(text);
}

</script>
</head>

<body>
<form name="form">
<input type='text' name='txt' id='txt'><input type=button value=teste onclick="get();">
</form>
</body>
</html>

[]'s

obs

Marcio,

o problema só acontece quando eu uso o texto dentro da função. tipo:

function get() {
            //var f = document.forms['form2'];
            //var theText = f.elements['form2:tx'].value;
            
            var theText = "Ação";

            var text = '';
            var arr = new Array();
     
            for( i=0; i < theText.length; i++ ){
                    arr[i] = theText.charCodeAt(i);
                    text += String.fromCharCode(arr[i]);
            }
            alert(arr);
            alert(text);
       }

Caso o texto seja referente a um componte da pagina não dá erro. tipo:

var f = document.forms[‘form2’];
var theText = f.elements[‘form2:tx’].value;

obs

tentei tb com ISO-8859-1, e nada!

thiago.correa

Uma solução seria colocar a sua função em um arquivo *.js e referenciá-lo no seu JSP. Porque o JSF faz isso, troca caracteres “latinos” por códigos.

Eu percebi isso quando fiz um comentário HTML, que continha palavras acentuadas, e ele substituiu por códigos :evil:

Y

thiago.correa:
Uma solução seria colocar a sua função em um arquivo *.js e referenciá-lo no seu JSP. Porque o JSF faz isso, troca caracteres “latinos” por códigos.

Eu percebi isso quando fiz um comentário HTML, que continha palavras acentuadas, e ele substituiu por códigos :evil:

Reiterado! Até pq, é uma boa prática de construção de páginas web, quanto ao seu conteúdo estático, separar o código JS do HTML. Acrescentando, contudo, que realocar as linhas CSS num arquivo *.css seria uma ótima ação!

obs

obrigado Thiago pela ajuda. funcionou com js!

Criado 3 de janeiro de 2007
Ultima resposta 4 de jan. de 2007
Respostas 7
Participantes 5