Как я могу создать динамический Javascript?

Я просматриваю страницу с помощью YUI. и в зависимости от пользователя мне нужно изменить способ его рендеринга. Это изменение не является чем-то, что можно параметризовать, оно сильно и различно для каждого пользователя.

Скажите, пожалуйста, как я могу генерировать Javascript динамически?

Related of "Как я могу создать динамический Javascript?"

Я лично использую php-файл для передачи объекта JavaScript, состоящего из некоторых базовых сеансов и внутренних настроек, ничего не критично, поскольку передача информации клиенту не слишком безопасна, но я считаю, что он может следовать тем же принципам, что и вы, для.

Аналогично, я использую это, чтобы отображать определенные элементы после входа в систему клиента, хотя все полномочия все еще выполняются на стороне сервера. Если мой обработчик сеанса дает файлу PHP в порядке, он выдает объект JavaScript с использованием строки heredoc PHP, иначе он ничего не выводит. Вы можете использовать атрибуты этого объекта для сравнения или вы можете выводить только JavaScript для того, как должна отображаться определенная страница, на основе настроек в вашем php-файле.

HTML:

<script src="common/javascript/php_feeder.php" type="text/javascript"></script> 

PHP:

 //my session handler authorisation check has been removed //although you could place your own up here. //assuming session was authorised //set content type header header("content-type: application/x-javascript"); $js_object = <<<EOT var my_object = { my_attr: '{$my_attr}', my_attr2: '{$my_arrt2}', etc: '{$etc}' } EOT; print($js_object); 

Возможно, вы можете создать два отдельных файла сценариев Java и включить требуемый файл в зависимости от типа пользователя.

ПСЕВДОКОД

 If user_type is One <Script src='one.js' type='javascript'></script> else <Script src='other.js' type='javascript'></script> End If 

JavaScript имеет функцию eval , поэтому я думаю (я не пробовал), что вы можете сгенерировать JavaScript, записав его в строковую переменную (а затем вызвав eval на эту строковую переменную).

Немногая разработка здесь, несомненно, поможет вам получить более подробный и полезный ответ. Тем не менее, вы можете легко использовать функции, объявленные внутри оператора if, чтобы предоставлять разнообразный опыт для разных пользователей.

Очень простой пример:

 <script> function do_something(userType) { if (userType == 'A') { // everything you need to do for userType A } if (userType == 'B') { // everything you need to do for userType B } } </script>