Penso que todo programador, com alguns anos de prática, já sentiu a necessidade de fazer o seguinte comando:
var script = "<script> alert('Erro: Número inválido'); </script>";
document.write(script);
O problema é que isso não funciona na maioria dos navegadores, por causa das políticas de segurança. (alguém já ouviu falar de code injection? :P)
Mas para isso, sempre existe um jeitinho... (não que isso seja o certo, mas funciona :) )
O problema do código acima, é que a tag <script> é inválida dentro das instruções javascript...
Mas se eu fizer esta instrução assim:
document.write("<scr" + "ipt> alert('Erro: Número inválido'); </scr" + "ipt>");
Ela vai funcionar!
O que acontece é que o javascript é uma linguagem interpretada, e como a tag "script" esta dividida em duas "strings" ("scr" + "ipt"), este não consegue identificar e com isso, a instrução passa sem nenhum bloqueio!
Obs.: Não sei até quando esta "facilitação" (para não falar de gambiarra...) vai existir, mas pelo que testei, ainda esta valendo. :)
Até mais!
Um comentário:
Acabei de perceber que já postei esta dica... Sorry, pessoal :P
Postar um comentário