innerHTML从图像标记中删除关闭斜杠

Dav*_*vid 3 javascript xhtml image innerhtml

这很奇怪.这是一个快速测试功能:

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);
}
Run Code Online (Sandbox Code Playgroud)

运行上面的代码将显示/>在第一个警报中,但第二个警报不显示,它只显示>.所以它看起来像应用.innerHTML去除正斜杠.任何想法如何阻止这种情况发生?我需要正斜杠进行验证.

Mar*_*pel 6

第二个警报只显示浏览器用作图像元素内部表示的内容.您不需要使用斜杠进行验证,因为验证始终与您的页面源有关,验证程序不会执行动态添加元素到DOM的JavaScript.

事实上,大多数浏览器内部处理XHTML与HTML相同,而不是文档的XML表示.只有当您发送带有MIME类型的XHTML文档时application/xhtml+xml,某些浏览器才会使用XML解析器呈现您的页面.

另见Ian Hickson的文章.