[RESOLVIDO] Inpedir injeção de HTML via Javascript: como?

4 respostas
A

Tenho um formulário web onde uma tabela é manipulada dinamicamente via Javascript, onde uma função minha chamada addRow(valor) é usada. Nesta função é solicitado o valor que irá preencher a nova linha da tabela via window.prompt(‘Digite o valor:’, ‘’) e inserida na nova linha via innerHTML.

Porém se o usuário inserir algum código HTML, este será construído na tabela (digitar “<input>” no prompt não gerará o texto ‘<input>’, e sim um componente de texto na linha da tabela).

Como impedir isso, deixanto literalmente tudo que é informado, de preferência com Javascript puro?

4 Respostas

A

Você quer bloquear a entrada de tags HTML no formulário, ou quer tratar essas entradas ?

A

Oi Antonioni,

o que resolve é trocar o > por & lt; (sem esse espaco no meio) e o > por & gt; (sem esse espaco no meio). O JQuery se nao me engano faz isso qdo vc vai no elemento e seta o atribute text dele.

algo do tipo:

$('#elemento').text(stringContendoHtml);

Se vc nao tiver usando o jquery, pode tentar fazer esse replace na mao. Lembre-se de que tudo isso é Javascript, e que ainda assim essa funcionalidade pode ser desabilitada pelo usuario.

[]s

A

Olá,

por que em vez de usar innerHTML você não usa innerText ?

OBS: No caso do firefox usa textContent em vez de innerText.

A

Obrigado pela ajuda, gente, as dicas funcionaram beleza.
Abraços. :slight_smile:

Criado 5 de dezembro de 2010
Ultima resposta 5 de dez. de 2010
Respostas 4
Participantes 4