有谁可以告诉我为什么特别在这里?
<html>
<head>
<script src="editor.js"></script>
</head>
<body>
<div id="scripts" class="scripts">
Editor.Execute('<html>Html String</html>');
Editor.Execute('<something>Html String</something>');
</div>
</body>
</html>
document.getElementById("scripts").innerHTML
显示something
html
消失。
Execute('Html String');
Execute('<something>Html String</something>');
它在Firefox和Chrome中的行为方式相同。
答案 0 :(得分:4)
您正在遇到this issue。
基本上,浏览器会在您的JavaScript甚至可以访问该页面之前清理HTML标记 - 您可以在Chrome元素检查器中检查,<html>
标记不存在。
我想答案取决于您正在尝试做什么,但如果您只是尝试将该代码输出到网页上,则可以逃避字符:
<html>
<body>
<div id="scripts" class="scripts">
Execute('<html>Html String</html>');
Execute('<something>Html String</something>');
</div>
</body>
</html>
然后document.getElementById('scripts').innerHTML
将输出:
Execute('<html>Html String</html>');
Execute('<something>Html String</something>');
然后您可以用JavaScript替换HTML实体。
答案 1 :(得分:0)
不知道你在Execute()
做了什么,很难说那里发生了什么。
以防万一:HTML文档只能有一个<html>
节点。