<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>escape test</title>
</head>
<body>
<div id="test"></div>
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function () {
var test = document.getElementById('test');
test.innerHTML = '<p data-title="<script>"><script></p>'
window.p = test.getElementsByTagName('p')[0];
console.log(p);
console.log(p.outerHTML);
});
</script>
</body>
</html>
结果如下:
文本节点的代码用js获取的结果还是原来的代码,在页面上显示的是转义的结果。而属性节点中的代码会被直接转义掉。