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

请帮助我如何实现这一目标。

4

3 回答 3

2

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

也就是说,这是一个 URL 和 raw ,<字符不应该出现在 URI 中。所以将其编码为>"http://abc.com/player.js%3C/xref%3E?xyz=%22foo%22

于 2013-04-10T09:36:52.393 回答
1

你应该这样做

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

Url 应该被正确编码以作为有效的 URL

用于encodeURI将 URL 编码为有效的 URL

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

请参阅答案以encodeURI获得更好的知识。

于 2013-04-10T09:36:19.683 回答
0

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

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

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

HTML 编码/解码:
http ://htmlentities.net/


老答案:

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

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

decodeURI如果需要,您还可以使用以下方法对其进行解码:

decodeURI(yourEncodedURI);

因此,最终我认为您无法让浏览器按</xref>原样显示标签,但如果您需要,您将能够保留它(使用encodeURI/ decodeURI)并在代码中使用它。

小提琴:http:
//jsfiddle.net/rk8nR/3/

更多信息:
您什么时候应该使用转义而不是 encodeURI / encodeURIComponent?

于 2013-04-10T09:40:44.377 回答