How can I generate Dynamic Javascript?

做~自己de王妃 提交于 2019-11-29 01:14:02

问题


I render a page using YUI. and depending on the user I need to change how it is rendered. This change is not something that can be parametrized, it is drastic and different for each user.

Please tell me how can I generate Javascript dynamically?


回答1:


I personally use a php file to pass a JavaScript object made up of some basic session and internal settings, nothing mission critical as passing information to the client isn't overly secure, but I believe it might follow the same principles as what you are looking for.

Similarly, I use this to display certain elements once the client is logged in, although all the authorization is still done on the server side. If my session handler gives the PHP file the ok, it outputs a JavaScript object using a PHP heredoc string, otherwise it doesn't output anything. You can use attributes of this object to compare against, or you could output only the JavaScript for how a certain page should be rendered, based on settings in your php file.

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);



回答2:


You can probably create two separate Java script files, and include the required file, depending upon the user type.

Pseudocode

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



回答3:


JavaScript has an eval function, so I think (I haven't tried it) that you can generate JavaScript by writing it into a string variable (and then calling eval on that string variable).




回答4:


A little bit of elaboration here would most certainly help in getting you a more descript and helpful answer. That in mind, though, you could easily just use functions declared inside an if statement to provide distinctly varied experiences for different users.

A very basic example:

<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>


来源:https://stackoverflow.com/questions/531311/how-can-i-generate-dynamic-javascript

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!