2011-04-26 15 views
13

Estaba escribiendo un código simple y me di cuenta de que el uso de document.writeln no escribe en una nueva línea, que me permita hacer demuestro ...document.writeln no escribe en una nueva línea

// this is my JSON object 
var myObject = { 
"firstName": "John", 
"lastName": "Smith", 
"age": 25, 
"address": [{ 
    "Address1": "11 My Street", 
    "Address2" : "Nice Area", 
    "Town" : "Nice Town", 
    "PCode" : "P05T 0DE" 
    }] 
} 

document.writeln(myObject.firstName); 
document.writeln(myObject.address[0].Address1); 

ahora esto da salida a la siguiente ....

Juan 11 Mi calle

es todo en una línea? Si utilicé document.write() esperaría esto? Está sucediendo en IE & Firefox. Obviamente, podría agregar + "<br/>" o + "\n" pero no debería necesitar hacer eso?

¿Estoy siendo estúpido?

Respuesta

14

Los motores de diseño de HTML doblan todos los espacios en blanco a un solo espacio. De curso necesita <br /> o algún otro mecanismo que HTML utiliza para poner las cosas en líneas separadas.

2

document.writeln escribirá una línea en el documento, no una "línea" en el código HTML . Su documento (código fuente) en realidad contendrá la "\ n", pero el salto de línea no aparecerá en el HTML.

1

Lo que estás produciendo está siendo interpretado como HTML y tienes que mostrar las etiquetas de formato para que se vea como quieres.

1

ver el origen de la página para ver cómo el navegador pone cada línea en una línea- pero si desea ver una nueva línea en el html, sí, ponga un '<br>' entre ellos.

9

document.writeln hace esto:

le escriba una cadena de texto seguido de un carácter de nueva línea a un documento.

Pero el espacio en blanco se contrae y se convierte en un único espacio cuando se procesa HTML, por lo que su nueva línea no hace nada dentro del código HTML.

1

Espero que el código fuente de la página lo tenga en dos líneas, pero el navegador lo condensará en una línea, ya que condensa todo el espacio en blanco en un solo espacio. Entonces en el navegador, lo muestra en una línea.

Como dijiste, necesitas agregar un elemento BR para que se muestre en dos líneas.

1

document.writeln() añada un \n a cada línea. Sin embargo, en el espacio en blanco HTML todo se muestra como un espacio único; deberá agregar las etiquetas <br> o <p> usted mismo.

3

Parece que todo está en una sola línea. Haga esto -

document.write('<pre>'); 
document.writeln(myObject.firstName); 
document.writeln(myObject.address[0].Address1); 

y verá.

+0

Estaba teniendo problemas con nuestras sub secciones de impresión de página en Chrome. Esto obtuvo el html para mostrar en la vista previa. No tengo idea de por qué, pero funcionó. –

0

Para usar document.write() o document.writeln() para obtener algún tipo de una lista o nuevas líneas de texto en un documento HTML:

var somevar = "foo"; 
    for(i=1;i<4;i++){ 
    document.write(i+". "+somevar+"<br>"); 
    } 

Esta es la salida:

  1. foo
  2. foo
  3. foo
+2

¿Por qué respondes una pregunta hecha hace un año con una respuesta aceptada? – webnoob