<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"
请帮助我如何实现这一目标。
<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"
请帮助我如何实现这一目标。
它没有被忽视。它被视为结束标记(对于没有开始标记的非 HTML 元素)。如果<
您希望<
字符显示为数据而不是“标记开始”,请使用此选项。
也就是说,这是一个 URL 和 raw ,<
字符不应该出现在 URI 中。所以将其编码为>
"
http://abc.com/player.js%3C/xref%3E?xyz=%22foo%22
你应该这样做
"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
获得更好的知识。
我误解了这个问题,我认为 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/