使用eval时,show function未定义

时间:2011-05-30 06:20:50

标签: javascript

<html>
<body>
<input type="text" onFocus="javascript:findPosY()"/>
<script type="text/javascript">
eval( function findPosY(){alert("OK");});
</script>
</body>
</html>

执行上述代码时,未调用eval()函数,并且不显示警报。

4 个答案:

答案 0 :(得分:2)

eval()

  

评估JavaScript代码的字符串 ...

Source

答案 1 :(得分:0)

您应该将字符串传递给eval函数:

<html>
<body>
<input type="text" onFocus="javascript:findPosY()"/>
<script type="text/javascript">
eval( 'function findPosY(){alert("OK");}');
</script>
</body>
</html>

答案 2 :(得分:0)

您的代码执行双重评估。第一个eval用于内联事件处理程序(通过te方式不需要javascript:部分)。接下来,尝试在脚本标记中eval。如其他答案所示,eval需要一个字符串。但在这种情况下eval凌是完全没必要的。你的代码片段应该是这样写的:

<html>
<body>
 <input type="text" onfocus="findPosY()"/>
 <script type="text/javascript">
  function findPosY(){
      alert("OK");
  }
 </script>
</body>
</html>

答案 3 :(得分:0)

<html>
<body>
<input type="text" onFocus="javascript:findPosY()"/>
<script type="text/javascript">
eval('(function (){alert("OK");})()');
</script>
</body>
</html>

请注意字符串末尾的括号是eval'd,这将调用该函数。