How can I generate Dynamic Javascript?

后端 未结 4 851
生来不讨喜
生来不讨喜 2020-12-14 12:42

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

相关标签:
4条回答
  • 2020-12-14 13:01

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

    0 讨论(0)
  • 2020-12-14 13:16

    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>
    
    0 讨论(0)
  • 2020-12-14 13:26

    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
    
    0 讨论(0)
  • 2020-12-14 13:27

    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);
    
    0 讨论(0)
提交回复
热议问题