首页  >  文章  >  web前端  >  如何从字符串安全地执行 JavaScript 函数?

如何从字符串安全地执行 JavaScript 函数?

Susan Sarandon
Susan Sarandon原创
2024-10-27 19:10:01700浏览

How to Safely Execute JavaScript Functions from Strings?

从字符串调用 JavaScript 函数

在 JavaScript 中,您可能会遇到需要将包含函数调用的字符串转换为实际函数执行的场景。这是一个全面的解决方案:

先决条件:

  • 标识代表函数调用的字符串,例如“settings.functionName '(' t.parentNode.id” ')'"。
  • 确定函数名称及其参数:“clickedOnItem”、“IdofParent”。

解决方案:

  1. 从全局范围中检索目标函数:
<code class="js">var fn = window[settings.functionName];</code>

此步骤获取对 settings.functionName 标识的函数的引用,在本例中为“clickedOnItem”。

  1. 检查检索到的值是否是一个函数:
<code class="js">if(typeof fn === 'function') {
    fn(t.parentNode.id);
}</code>

此步骤确保检索到的值确实是一个函数。如果是,它将继续使用指定参数执行函数。

在提供的示例中,代码会将字符串转换为直接函数调用:

<code class="js">clickedOnItem(IdofParent);</code>

附加说明:

虽然 eval() 方法也可以将字符串作为代码进行计算,但出于安全考虑,通常不鼓励这样做。这里提出的解决方案提供了一种更安全的替代方案。

以上是如何从字符串安全地执行 JavaScript 函数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn