【问题标题】:How can I call a function using a string in javascript?如何在 javascript 中使用字符串调用函数?
【发布时间】:2013-09-17 07:16:43
【问题描述】:

我已经知道有一个类似的问题,但似乎无法使其发挥作用。

请告诉我需要做什么。

示例:(其中字符串“test”是函数名)

 <script>

  function test(){
  alert("Hello World");
  }
   //is this the right way to call it? 
  window["test"]();


  </script>

//请不要评价

【问题讨论】:

  • This answer 演示了如何做到这一点。请描述您无法使其工作的原因,包括任何 JavaScript 控制台错误。
  • 它在小提琴中不起作用。当我问这个问题时,我正在测试小提琴。

标签: javascript user-defined-functions


【解决方案1】:

请关注关注

var fn = window["test"];
if(typeof fn == 'function') {
    fn();
}

【讨论】:

  • @ronell 请查看修改后的答案
  • 嗨,Pawan,当我重新加载页面时,我期待收到警报。这是小提琴:fiddle.jshell.net/uxskW/3
  • 请看小提琴fiddle.jshell.net/uxskW/5你必须写这个是头部分并删除一个额外的=我错了,愚蠢的错字;)
【解决方案2】:

评估是您所需要的。示例:

<script>
    eval("alert('hello')");
</script>

【讨论】:

  • 感谢您的评论,但我不想使用 eval。
【解决方案3】:

这样试试

<script>

function test(){
alert("Hello World");
}
var func = 'test'
this[func]();
</script>

【讨论】:

  • 感谢您的评论! :)
【解决方案4】:

您的示例应该有效。这是一个类似问题的答案 How to execute a JavaScript function when I have its name as a string

【讨论】:

  • 是的,但它不起作用..我在询问之前已经检查了该页面。感谢您的评论。
【解决方案5】:

Pawan 的回答是对的,它在 fiddle 中不起作用,因为 fiddle 将代码包装到 $(window).on("load") 事件中。在普通页面中尝试。抱歉,不能评论,低声望

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 2017-06-29
    相关资源
    最近更新 更多