<html>
<body>
<input type="text" onFocus="javascript:findPosY()"/>
<script type="text/javascript">
eval( function findPosY(){alert("OK");});
</script>
</body>
</html>
Mientras se ejecuta el código anterior, no se llama a la función eval () y no se muestra la alerta.
4 respuestas
Su código hace una doble evaluación. Primero eval
se usa para el controlador de eventos en línea (que por cierto no necesita la parte javascript:
). A continuación, intente eval
dentro de su etiqueta de script. Como lo indican otras respuestas, eval
necesita una cadena. Pero en este caso, eval
ling es completamente innecesario. Su fragmento debe escribirse así:
<html>
<body>
<input type="text" onfocus="findPosY()"/>
<script type="text/javascript">
function findPosY(){
alert("OK");
}
</script>
</body>
</html>
Debe pasar una cadena a la función eval:
<html>
<body>
<input type="text" onFocus="javascript:findPosY()"/>
<script type="text/javascript">
eval( 'function findPosY(){alert("OK");}');
</script>
</body>
</html>
<html>
<body>
<input type="text" onFocus="javascript:findPosY()"/>
<script type="text/javascript">
eval('(function (){alert("OK");})()');
</script>
</body>
</html>
Tenga en cuenta el paréntesis al final de la cadena que se está evaluando, esto llamará a la función.
Preguntas relacionadas
Nuevas preguntas
javascript
Para preguntas sobre la programación en ECMAScript (JavaScript / JS) y sus diversos dialectos / implementaciones (excepto ActionScript). Incluya todas las etiquetas relevantes en su pregunta; por ejemplo, [node.js], [jquery], [json], etc.