У меня есть небольшая проблема с вызовом строки в качестве функции javascript. Моя строка из PHP следующая:
'function selectCallBack() { testOnSelect($(this)); }'
На стороне скрипта у меня есть следующее: я пытался использовать окно, но это не работает.
var fn = window[{$element.onSelect}];
if (typeof fn === "function") {
fn();
}
Тип fn не определен. Я также пытался проверить объект Object, если он является функцией, но я не знаю, как вызвать функцию.
Я использую SmartyTemplate, Javascript и PHP. Можете ли вы сказать мне, что это не так?
Вот пример рабочего кода функции как строки (php var), определенной и вызываемой внутри тега скрипта:
<?php $stringFunction = 'function alertMsg(msg) { alert(msg); }' ?>
<script><?php echo $stringFunction ?> alertMsg('Hello World!');</script>
имейте в виду, если вы используете smarty, вам нужно избежать скобок {} в теге скрипта. вы можете сделать это, используя {literal} функцию smarty-template-engine.