标记忽略html标记的文本

时间:2013-04-10 09:32:31

标签: html

<label for="abc" id="xyz">http://abc.com/player.js</xref>?xyz="foo" </label>

忽略

</xref> tag
浏览器中的

值。因此,显示的输出是

http://abc.com/player.js?xyz="foo" 

但我希望浏览器显示

http://abc.com/player.js</xref>?xyz="foo" 

请帮我解决这个问题。

3 个答案:

答案 0 :(得分:2)

不被忽视。它被视为结束标记(对于没有开始标记的非HTML元素)。如果您希望&lt;字符显示为数据而不是&#34;标记的开头&#34;,请使用<

也就是说,这是一个网址,原始<>"字符无论如何都不应出现在URI中。因此将其编码为http://abc.com/player.js%3C/xref%3E?xyz=%22foo%22

答案 1 :(得分:1)

你应该这样做

"http://abc.com/player.js%3C/xref%3E?xyz=foo"

应正确编码网址以作为有效网址

使用encodeURI对有效的网址进行编码

var ValidURL = encodeURI("http://abc.com/player.js</xref>?xyz=foo");

有关更好的知识,请参阅encodeURI上的this回答。

答案 2 :(得分:0)

我误解了这个问题,我认为URI将在JavaScript中的其他地方使用。但问题非常清楚地表明URI只是呈现为文本。

如果正在显示的文本是从服务器传入的,那么最好的办法就是在将其打印到页面上之前对其进行编码(或者如果您使用的是模板引擎,那么您很可能只是对其进行编码模板)。几乎任何Web框架/模板引擎都应该具有此功能。

但是,如果它只是静态HTML,只需手动编码字符即可。如果您不知道头顶的代码,您可以使用一些在线转换器来帮助,例如:

HTML Encode / Decode:
http://htmlentities.net/


旧答案:

在使用之前尝试使用JavaScript函数encodeURI对URI进行编码:

encodeURI('http://abc.com/player.js</xref>?xyz="foo"');

如果需要,您也可以使用decodeURI对其进行解码:

decodeURI(yourEncodedURI);

所以最终我认为您无法让浏览器按原样显示</xref>标记,但您可以保留它(使用encodeURI / {{1如果这是您需要的话,请在您的代码中使用它。

<强>小提琴:
http://jsfiddle.net/rk8nR/3/

更多信息:
When are you supposed to use escape instead of encodeURI / encodeURIComponent?