9 Stimmen

Wie kann ich dynamisches Javascript erzeugen?

Ich rendern eine Seite mit YUI. und je nach Benutzer muss ich ändern, wie es gerendert wird. Diese Änderung ist nicht etwas, das parametrisiert werden kann, es ist drastisch und für jeden Benutzer anders.

Bitte sagen Sie mir, wie ich Javascript dynamisch generieren kann?

13voto

Asciant Punkte 2120

Ich persönlich verwende eine PHP-Datei, um ein JavaScript-Objekt zu übergeben, das aus einigen grundlegenden Sitzungs- und internen Einstellungen besteht, nichts Kritisches, da die Weitergabe von Informationen an den Client nicht übermäßig sicher ist, aber ich glaube, es könnte denselben Prinzipien folgen wie das, wonach Sie suchen.

In ähnlicher Weise verwende ich dies, um bestimmte Elemente anzuzeigen, sobald der Kunde angemeldet ist, obwohl die gesamte Autorisierung immer noch auf der Serverseite durchgeführt wird. Wenn mein Session-Handler der PHP-Datei sein OK gibt, gibt er ein JavaScript-Objekt mit einem PHP-Heredoc-String aus, andernfalls gibt er nichts aus. Sie können Attribute dieses Objekts zum Vergleich heranziehen, oder Sie können nur das JavaScript ausgeben, wie eine bestimmte Seite gerendert werden soll, basierend auf den Einstellungen in Ihrer PHP-Datei.

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

2voto

M.N Punkte 10607

Sie können wahrscheinlich zwei separate Java-Skriptdateien erstellen und je nach Benutzertyp die erforderliche Datei einfügen.

Pseudocode

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

0voto

ChrisW Punkte 53239

JavaScript hat eine eval Funktion, also denke ich (ich habe es nicht ausprobiert), dass Sie JavaScript erzeugen können, indem Sie es in eine String-Variable schreiben (und dann eval auf diese String-Variable).

0voto

Hexagon Theory Punkte 40723

Ein wenig mehr Ausführlichkeit würde Ihnen sicherlich helfen, eine anschaulichere und hilfreichere Antwort zu erhalten. Sie könnten aber auch einfach Funktionen verwenden, die innerhalb einer if-Anweisung deklariert werden, um verschiedenen Benutzern unterschiedliche Erfahrungen zu bieten.

A muy grundlegendes Beispiel:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X