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

时间:2010-11-22 10:28:32

标签: javascript image xhtml 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);
}

运行上面的代码会在第一个提醒中显示/>,但第二个提醒不显示,只显示>。所以它似乎适用于.innerHTML剥离正斜杠。任何想法如何阻止这种情况发生?我需要正斜杠进行验证。

1 个答案:

答案 0 :(得分:6)

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

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

另见Ian Hickson的article