我被这个问题困住了:
<body onload="document.body.innerHTML="<script>alert('hi')</script>"">
问题是我不能在引号内的引号内使用引号。有任何想法吗?
我被这个问题困住了:
<body onload="document.body.innerHTML="<script>alert('hi')</script>"">
问题是我不能在引号内的引号内使用引号。有任何想法吗?
要表示由字符"
分隔的 HTML 属性中的"
字符,请使用实体"
我建议使用 JavaScript 附加事件侦听器,而不是使用内部事件属性。它大大简化了事情。
但是请注意,浏览器不会执行添加到文档中的 JavaScriptinnerHTML
。如果您想以编程方式添加脚本,请使用createElement
/ appendChild
et al.
<body onload='document.body.innerHTML="<script>alert(\"hi\")</script>"'>
或者
<body onload="document.body.innerHTML='<script>alert(\'hi\')</script>'">
它确实有效,但脚本没有被执行,因为它是在浏览器解析您的代码后添加的。
请注意,如果您想要引号内的引号内的引号内的引号,您会这样做:<body onload="document.body.innerHTML='<script>alert(\'\\\'hi\\\'\')</script>'" >
没有真正不可能的(我认为)"
是把"
和'
放在警报中。
您可以使用反引号 (`)、单引号和双引号的组合。
代码:
<body onload="document.body.innerHTML=`<script>alert('hi')</script>`">
呸!首先,不要那样做。:D
就像是:
<body></body>
<script>
window.onload = function () {
document.body.innerHTML = "<script>alert('hi')</script>";
}
</script>
. . . 会更好。也考虑一些 JQuery 解决方案。
即使是那种特定的方法,我也不推荐,但我怀疑您只是在测试如何在页面加载后向 HTML 正文添加内容,而不是真正想要使用alert()
. ;) 如果是这种情况,请尝试以下操作:
<body></body>
<script>
window.onload = function () {
document.body.innerHTML = "some text";
alert('hi'); // if you really want to test that the JS is working after load.
}
</script>