javascript - 打印 javascript 转义文本时缺少脚本标记

标签 javascript escaping

<!DOCTYPE html>
<html>
<body>

<p>Click the button to trigger a function that will output "Hello World" in a p element with id="demo".</p>

<button onclick="myFunction()">Click me</button>

<p id="demo"></p>

<script>
function myFunction() {
    document.getElementById("demo").innerHTML = "'Python\x20Auto\x20\x3Cscript\x20type\x3D\x22text\x2Fjavascript\x22\x3E\x20alert\x28\x22JavaScript\x20alert\x22\x29\x3B\x20\x3C\x2Fscript\x3E\x20'";
}
</script>

</body>
</html>
我将“demo”元素 insideHtml 设置为 Python Auto Alert("JavaScript Alert"); 的转义版本; 。 如果您运行此 html 并单击“Click me”按钮。您可以看到结果为“Python Auto”。缺少脚本标签。为什么会发生这种情况?为什么脚本标签及其内容丢失了?

最佳答案

需要使用 < 来表示 <,使用 > 来表示 >,使用\"来表示 "。其他一切都应该可以使用实际字符,见下文。

<!DOCTYPE html>
<html>
<body>

<p>Click the button to trigger a function that will output "Hello World" in a p element with id="demo".</p>

<button onclick="myFunction()">Click me</button>

<p id="demo"></p>

<script>
function myFunction() {
    document.getElementById("demo").innerHTML = "'Python Auto &ltscript type=\"text/javascript\"&gt alert(\"JavaScript alert\");&lt/script&gt'";
}
</script>

</body>
</html>

关于javascript - 打印 javascript 转义文本时缺少脚本标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40422236/

相关文章:

javascript - 通过 onclick 方法 js 从 php code catch 中获取 id 然后传递到另一个页面

javascript - 为 JavaScript 构建过程工具

javascript - 我们可以检测浏览器刷新和后退按钮事件吗?

php - 如何在PHP中转义仅 "'”?

javascript - Angularjs中ajax单一方法的架构

javascript - 将 base64 位图插入 rtf

json - 在 PowerShell 中调用 ExpandString 时如何转义字符串变量

java - 在 jackson 转义正斜杠

Python - 打印直到标记(a la PHP)?

javascript - 在 JavaScript 中转义动态字符串