2009-06-11 17 views
17

¿Cómo incluyo una nueva línea en un atributo de etiqueta HTML?¿Cómo puedo usar un valor de línea múltiple para un atributo de etiqueta HTML? (es decir, ¿cómo puedo escapar de la nueva línea?)

Por ejemplo:

<a href="somepage.html" onclick="javascript: foo('This is a multiline string. 
This is the part after the newline.')">some link</a> 

Editar: Lo sentimos, mal ejemplo, ¿qué pasaría si la etiqueta ha pasado a no estar en Javascript, por ejemplo:

<sometag someattr="This is a multiline string. 
This is the part after the newline." /> 

Editar 2: Gira la nueva línea en la cadena wa no es mi problema, era la función de javascript que estaba llamando. FWIW, "&#10;" se puede utilizar para nueva línea en un atributo de HTML.

Respuesta

16

Por lo que recuerdo sobre el estándar HTML, entidades de caracteres funcionan en los atributos, por lo que este fuerza trabajo:

<sometag someattr="This is a multiline string.&#10;This is the part after the newline." /> 

I' m no estoy seguro si la "nueva línea" que desea debe ser & # 10; (\ n) o & # 13; & # 10; (\ r \ n), y no estoy seguro de si los navegadores lo interpretarán de la manera que desee.

¿Por qué lo necesitas? ¿Qué problema específico estás tratando de resolver agregando una nueva línea en un atributo de etiqueta HTML?

+1

Funciona. Estaba a punto de publicar la misma respuesta. – Chuck

+3

El estándar XML para la normalización de atributos es: http://www.w3.org/TR/REC-xml/#AVNormalize Tiene una buena memoria :-) –

+0

No funciona en mi caso. ¿Por qué? ' Bao

0

No estoy seguro, pero se puede intentar \ r o \ n

javascript: foo('This is a multiline string.\rThis is the part after the newline.') 

o

javascript: foo('This is a multiline string.\nThis is the part after the newline.') 
+0

¿Qué pasa si no está dentro de javascript? – Kip

+0

son mis ejemplos no lo que estás buscando? – Jason

+0

disculpa, escogí un mal ejemplo, actualicé la pregunta – Kip

0

Por lo general, los saltos de línea en pantalla el código fuente HTML de lo que se pretende en el resultado.

(depende del editor, por supuesto)

-1

Ya que está en Javascript, se utiliza "\ n" si dentro de comillas dobles (no positivos sobre las comillas sencillas, he estado en PHP mucho últimamente .

honestamente, es importante mencionar que se debe utilizar Eventos y delega en lugar de colocar un evento de JavaScript directamente sobre el elemento.

5

como general nuevas líneas de regla en atributos se conservan por lo que su segundo ejemplo funcionaría bien. ¿Lo intentó? ¿Puede dar un ejemplo específico en el que tenga problemas?

Como prueba de echar un vistazo a esto: -

<a href="somepage3.html" onclick="javascript: alert(this.getAttribute('thing'))" thing="This is a multiline string. 
This is the part after the newline.">some link</a> 

La alerta incluye la nueva línea en el atributo.

+0

Vaya, resulta que el problema fue en realidad la función javascript que estaba llamando, no la nueva línea en la etiqueta. – Kip

+0

Solo para aclarar, se preservan las nuevas líneas en los valores de los atributos, –

10

Para incluir un valor de línea múltiple, simplemente continúe con el texto del atributo html en la siguiente línea de su editor, p.

<input type="submit" value="hallo 
hallo"> 

pondrá el segundo hallo bajo la primera

+0

hmm ... tienes razón. el problema específico que estaba encontrando era con la nueva línea dentro de javascript, pero asumí que se extendía a cualquier atributo html en general, pero supongo que estaba equivocado. : -/ – Kip

1
<a href="somepage.html" onclick="javascript: foo('This is a multiline string. \ 
This is the part after the newline.')">some link</a> 

Javascript necesita una barra diagonal inversa al final de la nueva línea en una cadena.

Cuestiones relacionadas