如何为HTML标记属性使用多行值? (即我如何逃脱换行?)

时间:2009-06-11 21:37:29

标签: javascript html syntax newline

如何在HTML标记属性中添加换行符?

例如:

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

编辑:抱歉,不好的例子,如果标签碰巧不在javascript中,请说:

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

编辑2 :原来字符串中的换行符不是我的问题,它是我调用的javascript函数。 FWIW,“&#10;”可用于HTML属性中的换行符。

7 个答案:

答案 0 :(得分:18)

根据我对HTML标准的记忆,字符实体在属性中工作,因此可能工作:

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

我不确定你想要的“换行符”应该是&amp;#10; (\ n)或&amp;#13;&amp;#10; (\ r \ n),我不确定浏览器是否会按照你想要的方式解释它。

你为什么需要它?您想通过在HTML标记属性中添加换行符来解决哪些具体问题?

答案 1 :(得分:14)

要包含多行值,只需在编辑器的下一行继续html属性的文本,例如

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

将第二个hallo放在第一个

之下

答案 2 :(得分:5)

作为一般规则,属性中的换行符会被保留,因此您的第二个示例可以正常工作。你试过吗?你能给出一个具体问题吗?

测试时请看一下: -

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

警报包含属性中的换行符。

答案 3 :(得分:1)

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

Javascript在字符串的新行末尾需要反斜杠。

答案 4 :(得分:0)

我不确定,但您可以尝试\ r或\ n

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

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

答案 5 :(得分:0)

通常,HTML源代码中的换行符会显示您在结果中的意图。

(当然取决于编辑)

答案 6 :(得分:-1)

因为它是在Javascript中,如果在双引号内,你会使用“\ n”(对于单引号不是正面的,我最近在PHP中使用过很多。

老实说,值得一提的是,您应该使用事件和委托人,而不是直接在元素上放置javascript事件。