如何在 javascript 中使用字符串调用函数?
Posted
技术标签:
【中文标题】如何在 javascript 中使用字符串调用函数?【英文标题】:How can I call a function using a string in 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 控制台错误。 它在小提琴中不起作用。当我问这个问题时,我正在测试小提琴。 【参考方案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") 事件中。在普通页面中尝试。抱歉,不能评论,低声望
【讨论】:
以上是关于如何在 javascript 中使用字符串调用函数?的主要内容,如果未能解决你的问题,请参考以下文章
如何将字符串转换为 JavaScript 函数调用? [复制]
如何将 PHP 字符串传递给 Javascript 函数调用? [复制]