<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"
请帮我解决这个问题。
答案 0 :(得分:2)
不被忽视。它被视为结束标记(对于没有开始标记的非HTML元素)。如果您希望<
字符显示为数据而不是&#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?