HTML:在引号内的引号内使用引号

时间:2013-11-07 19:44:08

标签: javascript html string quotes double-quotes

我遇到了这个问题:

<body onload="document.body.innerHTML="<script>alert('hi')</script>"">

问题是我不能在引号内的引号内使用引号。 有什么想法吗?

4 个答案:

答案 0 :(得分:24)

要在由"个字符分隔的HTML属性中表示"个字符,请使用实体&quot;

我建议使用attaching event listeners using JavaScript,而不是使用内部事件属性。它极大地简化了事情。

但请注意,browsers will not execute JavaScript added to the document with innerHTML。如果要以编程方式添加脚本,请使用createElement / appendChild等。

答案 1 :(得分:6)

<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>'" >

在没有&quot;的情况下,我认为真的不可能将"'放在警报中。

答案 2 :(得分:1)

尔加!首先,不要这样做。 :d

类似的东西:

<body></body>

<script>
    window.onload = function () {
        document.body.innerHTML = "<script>alert('hi')</script>";
    }
</script>

。 。 。会更好。考虑一些JQuery解决方案。

即使是那种特定的方法,我也不建议,但我怀疑你只是在加载页面后测试如何在HTML主体中添加内容,而不是真正想要使用{{1} }。 ;)如果是这种情况,请尝试这样的事情:

alert()

答案 3 :(得分:1)

您可以组合使用反引号 (`)、单引号和双引号。

代码:

<body onload="document.body.innerHTML=`<script>alert('hi')</script>`">