PDA

Ver la Versión Completa : Cuantos <Script></Script> deben haber en un <Body>?


Deiv
06-12-2006, 20:24:36
Hola,
En mis primeros pasos con Java Script, he notado que algunas Páginas Web tienen en su carpeta un archivo JScript Script File (aquel que tiene ícono amarillo cual si un pergamino)

1.- Me preguntaba ¿Cómo crear este archivo? y ¿Cuál es la función del mismo? ya que hasta el momento creía que todo código de Java Script tenía que estar incluido en la misma página con el código HTML y CSS.

2.- Mientras voy con mis primeros pasos, leyendo pude observar que un cuerpo de página tiene (por así decirlo) el siguiente orden:


<html>
<head>
<title>mi titulo</title>
</head>
<script language="JavaScript" type="text/javascript">
/* funciones de javascript */
</script>
<style type="text/css">
/* definición de estilos */
</style>
<body>
/* cuerpo del HTML */
<?php
/*codigo php*/
?>
</body>
</html>

No entiendo, y cuándo, se coloca el código <Script> entre <Head>..</Head>?? como el ejemplo de abajo, ¿es posible? Crei que iba solo dentro del <Body></Body>
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
function AbrirVentana() {
MiVentana=open("","MiPropiaVentana",
"toolbar=no,directories=no,menubar=no,status=yes");
MiVentana.document.write(
"<HEAD><TITLE>Una nueva ventana</TITLE></HEAD>");
MiVentana.document.write("<CENTER><H1><B>" +
"Esto puede ser lo que tu quieras</B></H1></CENTER>");
}
</SCRIPT>
</HEAD>
<BODY>
<FORM>
<INPUT TYPE="button" NAME="Boton1" VALUE="Abreme, Sésamo"
onClick="AbrirVentana()">
</FORM>
</BODY>
</HTML>

3.- Es normal colocar varios <SCRIPT></SCRIPT> en el cuerpo del <Body>? o ¿debe haber uno solo que englobe a muchas funciones?

Gracias. Un saludo

roman
06-12-2006, 21:00:53
En principio, puedes colocar tantos <script></script> como quieras y donde quieras (head o body). El código que haya en ellos se va interpretando conforme se carga esa parte de la página así que los del head son los primeros que se ejecutarán.

No obstante, no me parece buena idea colocar los <script> despedigados por todo el código html ya que tiende a ser muy confuso. Mejor colocarlos todo en el <head>, o, mejor aún, en archivos js para mejor organización. Estos archivos los creas con cualquier editor de texto y sólo se diferencian de los otros bloques de script en que no llevan las etiquetas <script> </script>. Para incluirlos en una página haces esto:


<html>
<head>
<title>Página</title>
<script type='text/javascript' src='funciones.js'></script>
</head>
<body>

</body>
</html>


Para conformar con los estándares, toda etiqueta <script> debe indicar el atributo type. El atributo src indica el archivo js que deseas incluir. Si tienes varios archivos, colocas una línea como la indicada por cada uno. Observa que aun en este caso (archivo externo) es necesaria la etiqueta final </script>.

// Saludos

dec
07-12-2006, 00:09:51
Hola,


<html>
<head>
<title>mi titulo</title>
</head>
<script language="JavaScript" type="text/javascript">
/* funciones de javascript */
</script>
<style type="text/css">
/* definición de estilos */
</style>
<body>
/* cuerpo del HTML */
<?php
/*codigo php*/
?>
</body>
</html>


Secundo lo que dice Román. Me gustaría resaltar que me llama la atención que incluyas un supuesto bloque de PHP dentro del "BODY" del documento HTML... esto puede inducirte a error, en el sentido de que PHP puede servir más que HTML, puede empezar con enviar cabeceras HTTP al cliente, puede imprimir todo el HTML... y por supuesto el "BODY" mismo. :)

roman
07-12-2006, 00:23:16
me llama la atención que incluyas un supuesto bloque de PHP dentro del "BODY" del documento HTML

Todo depende de como te organices. Aunque es cierto que php puede generar todo el código html, a mi en lo particular no me gusta mucho y prefiero separar en la medida de lo posible el código php del código html.

Por ejemplo- y no digo que así esté bien o mal -ese bloque php podría ser algo como


<?
...
$pagina = getPagina($_GET['paginaId']);
echo $pagina;
?>


de manera que se incluye un bloque según lo que se pida en la url.

Pero en resumen, a mi se me hace más natural y menos confuso escribir bloques html alternados con bloques php. A fin de cuentas así se diseñó php, para poder intercalarlo en el código html.

Algo que olvidé mencionar antes, con respecto a


creía que todo código de Java Script tenía que estar incluido en la misma página con el código HTML y CSS.


es que lo dicho para el código javascript vale para el css, esto es, es recomendable no escribirlo en el mismo html sino incluirlo con

<link rel='stylesheet' type='text/css' href='estilo.css'>

Creo que aquí también concordará dec.

// Saludos

dec
07-12-2006, 00:33:50
Hola,

Concuerdo. Conloco. Es curioso. Hay concuerdos, pero no hay conlocos... :D :D

Concuerdo, digo. Hombre Román, no te quito la razón ni mucho menos, pero, a mí se me ha venido a la cabeza que Deiv comienza en estos menesteres (como si yo fuera todo un gurú, ja), así que he querido entender que él estaba poniendo una especie de plantilla "general" de la estructura de un documento... ¿web?

Y ahí es donde he creído ver que le duele. Yo quería decir algo así como, de acuerdo, puedes hacer algo como lo que propones, pero, recuerda que PHP puede ir más allá... bastante.

Vaya, por lo mismo que el compañero pensaba que el JavaScript había de incluirse en el código HTML... puede incluirse, es bueno saber que puede incluirse, pero, también puede tenerse en un archivo aparte. Y... ya me callo. :D :D

roman
07-12-2006, 00:40:30
he querido entender que él estaba poniendo una especie de plantilla "general" de la estructura de un documento... ¿web?


Y, ¿qué con eso? Es una forma de organizar una aplicación web. Un sólo archivo, digamos indice.php, que sirve todas las páginas de la manera que comenté. Eso no quita que la aplicación pueda tener cientos y cientos de archivos php con toda la funcionalidad que deba tener el sitio. Es decir, no entiendo porque el tener una plantilla así, había de significar un uso limitado de php.

// Saludos

dec
07-12-2006, 00:54:21
Hola,

Pues no sé. A lo mejor estoy equivocado. Pondré un ejemplo. O lo que a mí me parece un ejemplo. Y ojo que si he dicho que con algo como lo que se propone se limita a PHP ahora mismo digo que no. Es justo lo contrario: en mi opinión PHP es tan versátil que permite algo así. Pero no es el caso.

El ejemplo que se me viene a la cabeza es el uso de las cabeceras HTTP. Tal y como yo entiendo "la plantilla" que propones estás dando por sentado que no se envían cabeceras HTTP por nuestra cuenta. El apartado de la Web que llamaras para que rellenara el cuerpo del documento no podría enviar cabeceras HTTP.

Ahora que lo pienso tal vez no sea el mejor ejemplo, ni siquiera bueno. Tal vez no me supe explicar, en el sentido de que lo que quería decir era poco más o menos que "De acuerdo, puedes hacerlo así, pero, sabe que también existen otras maneras de hacerlo".

Precisamente se me ocurrió comentar esto porque entreví que el compañero tenía en la cabeza "esa" forma de hacerlo como la única posible... o como la "general", cuando puede no ser así. Ahora, que yo entreveo menos que un gato de escayola, así que,... todo puede ser. :)

roman
07-12-2006, 01:04:12
Recuerda que yo hablé de alternar bloques php con bloques html. Claro que no se trata de insertar un sólo bloque php. Si se requieren cabeceras pues las pones:


<?
/* Aquí los header que quieras */
?>
<html>
<head>
<title>mi titulo</title>
</head>
<body>
<?
/* aquí incluyes el cuerpo de la página */
?>
</body>
</html>


// Saludos

Deiv
07-12-2006, 01:20:41
es que lo dicho para el código javascript vale para el css, esto es, es recomendable no escribirlo en el mismo html sino incluirlo con

<link rel='stylesheet' type='text/css' href='estilo.css'>

Por favor podrían ampliarme un poco más sobre esta parte? entiendo que debe estar separado, lo que no sé es cómo grabar (digamos preparando la parte textual en un block de notas) con que extensión para que me aparezca ese mismo icono amarillo que arriba mencioné?.

Luego, quizá con algún ejemplo pequeño para tratar de entender el tipo de enlace que realiza un archivo HTML con ese archivo separado de Java Script?
Deiv

dec
07-12-2006, 01:27:50
Hola,

La extensión para los archivos "JavaScript" (no sé si obligatoria pero sí popular) es ".js". La de las "hojas de estilo en cascada" es ".css". Que aparezca un icono como el que mencionas depende también del sistema operativo y del programa asociado para abrir dichos archivos ".js" por defecto.