Вызвать функцию JavaScript как строку, не работающую

0

У меня есть небольшая проблема с вызовом строки в качестве функции javascript. Моя строка из PHP следующая:

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

На стороне скрипта у меня есть следующее: я пытался использовать окно, но это не работает.

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

Тип fn не определен. Я также пытался проверить объект Object, если он является функцией, но я не знаю, как вызвать функцию.

Я использую SmartyTemplate, Javascript и PHP. Можете ли вы сказать мне, что это не так?

  • 0
    Отредактируйте вопрос и добавьте информацию там, а не в комментариях.
Теги:
smarty

1 ответ

1

Вот пример рабочего кода функции как строки (php var), определенной и вызываемой внутри тега скрипта:

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

имейте в виду, если вы используете smarty, вам нужно избежать скобок {} в теге скрипта. вы можете сделать это, используя {literal} функцию smarty-template-engine.

  • 0
    Спасибо! Работает отлично

Ещё вопросы

Сообщество Overcoder
Наверх
Меню