将javascript函数调用为不起作用的字符串

时间:2015-02-19 10:59:07

标签: javascript php smarty

将字符串作为javascript函数调用时遇到了一些问题。我在PHP中的字符串如下:

'function selectCallBack() { testOnSelect($(this)); }'

在脚本方面我有以下我试图使用窗口,但这不起作用。

var fn = window[{$element.onSelect}];
     if (typeof fn === "function") {
             fn();
 }

fn的类型未定义。我也尝试用对象检查它是否是函数,但我不知道如何调用函数。

我正在使用SmartyTemplate,Javascript和PHP。你能告诉我这是错的吗?

1 个答案:

答案 0 :(得分:1)

继承了一个函数的工作示例代码,作为字符串(php var)定义并在脚本标记内调用:

<?php $stringFunction = 'function alertMsg(msg) { alert(msg); }' ?>
<script><?php echo $stringFunction ?> alertMsg('Hello World!');</script>

请记住,如果您使用smarty,则需要转义脚本标记内的{}括号。你可以使用smarty-template-engine的{literal}函数来实现。