这很奇怪。这是一个快速测试功能:
function test_function(){
code = '<img src="http://www.myimage.com/img.jpg" alt="image" />';
alert(code);
document.getElementById('test').innerHTML = code;
alert(document.getElementById('test').innerHTML);
}
运行上面的代码会在第一个提醒中显示/>
,但第二个提醒不显示,只显示>
。所以它似乎适用于.innerHTML
剥离正斜杠。任何想法如何阻止这种情况发生?我需要正斜杠进行验证。
答案 0 :(得分:6)
第二个警报只显示浏览器用作图像元素内部表示的内容。您不需要使用斜杠进行验证,因为验证始终与您的页面源有关,验证程序不会执行动态添加元素到DOM的JavaScript。
事实上,大多数浏览器内部处理XHTML与HTML相同,而不是文档的XML表示。只有当您发送带有MIME类型application/xhtml+xml
的XHTML文档时,某些浏览器才会使用XML解析器呈现您的页面。
另见Ian Hickson的article。