php - llamar - ¿Cómo puedo generar Javascript dinámico?
llamar javascript desde html (4)
Represento una página usando YUI. y dependiendo del usuario, necesito cambiar la forma en que se representa. Este cambio no es algo que pueda parametrizarse, es drástico y diferente para cada usuario.
Por favor dígame ¿cómo puedo generar Javascript dinámicamente?
JavaScript tiene una función eval
, así que creo (no lo he probado) que puedes generar JavaScript escribiéndolo en una variable de cadena (y luego llamando a eval
en esa variable de cadena).
Probablemente pueda crear dos archivos de script Java separados e incluir el archivo requerido, dependiendo del tipo de usuario.
Pseudocódigo
If user_type is One
<Script src=''one.js'' type=''javascript''></script>
else
<Script src=''other.js'' type=''javascript''></script>
End If
Un poco de elaboración aquí seguramente ayudaría a obtener una respuesta más descriptiva y útil. Sin embargo, eso en mente podría fácilmente usar funciones declaradas dentro de una declaración if para proporcionar experiencias claramente variadas para diferentes usuarios.
Un ejemplo muy básico:
<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>
Yo personalmente uso un archivo php para pasar un objeto JavaScript compuesto por una sesión básica y configuraciones internas, nada de misión crítica como pasar información al cliente no es demasiado seguro, pero creo que podría seguir los mismos principios que lo que está buscando. para.
De manera similar, uso esto para mostrar ciertos elementos una vez que el cliente ha iniciado sesión, aunque toda la autorización todavía se realiza en el lado del servidor. Si mi manejador de sesión le da el archivo PHP el ok, genera un objeto JavaScript usando una cadena PHP heredoc, de lo contrario no genera nada. Puede usar los atributos de este objeto para comparar, o solo puede generar el JavaScript de cómo se debe representar una página determinada, según la configuración en su archivo 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);