Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用eval时,未定义显示功能 eval(函数findPosY(){alert(“OK”);});_Javascript - Fatal编程技术网

Javascript 使用eval时,未定义显示功能 eval(函数findPosY(){alert(“OK”);});

Javascript 使用eval时,未定义显示功能 eval(函数findPosY(){alert(“OK”);});,javascript,Javascript,执行上述代码时,未调用eval()函数且未显示警报。eval() 计算JavaScript代码的字符串 .您应该向eval函数传递一个字符串: <html> <body> <input type="text" onFocus="javascript:findPosY()"/> <script type="text/javascript"> eval( function findPosY(){alert("OK");}); </script&g

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

eval()
计算JavaScript代码的字符串


.

您应该向eval函数传递一个字符串:

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

eval('function findPosY(){alert(“OK”);}');

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

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

函数findPosY(){
警报(“正常”);
}

eval('(函数(){alert(“OK”);})(');

请注意正在求值的字符串末尾的括号,这将调用函数。

@Mr.alex作为您提到的链接,如果通过求值传递字符串,则可能受到恶意方的攻击。您的建议是什么?@BALA如果您想执行代码示例,没有理由使用
eval()
。为什么要使用
eval()
?亲爱的alex,在我们的项目场景中,我们动态生成了所有ex textbox等,一些js脚本也动态生成为字符串,因此使用innerhtml我获取该字符串并传递给eval。因此我使用eval。有其他方法吗???非常感谢。@BALA我不明白你想做什么。@BALA:如果我理解正确,并且生成了JS,你仍然不需要把它放在
eval
中。它将在发送到客户端后立即运行。除非你想调用这个函数。为此,您可以添加
findPosY()
最后..谢谢farshid,但是像上面这样使用eval是很危险的,因为第三方可以很容易地入侵代码或传播病毒..如何避免它亲爱的damodar,上面的代码正在工作,你可以检查哪个浏览器???@BALA:那么主要的问题是,你为什么要使用eval?是的,你能告诉其他人不使用eval执行js代码吗as字符串(也支持主要函数)@ KoReNC您是正确的,但是JS动态生成,请考虑我们基于XML创建用户界面。因此,基于XML值,例如Tabbox,我们动态生成,我们动态生成了一些JavaScript代码,所以用HTML我在UI中使用JAVS代码,用EVA方法。但是没有EVA方法。我们同意……让我知道任何疑问……@BALA:好吧,那样的话,你应该让舒尔知道你在评估一根弦<代码>eval('function findPosY(){alert(“OK”);}')。请参阅,这将在加载时发出“OK”警报。我几乎可以肯定这不是OP想要的。我认为这是OP需要的,请参阅他的最后一行:“在执行上述代码时,没有调用eval()函数,并且没有显示警报。”我假设警报是OP需要在加载时执行的某些代码的替换。
<html>
<body>
 <input type="text" onfocus="findPosY()"/>
 <script type="text/javascript">
  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>