javascript中的动态内容
这对某些人来说可能是显而易见的。我试图在特定情况下在屏幕上放置文本框,并使用以下代码:javascript中的动态内容,javascript,Javascript,这对某些人来说可能是显而易见的。我试图在特定情况下在屏幕上放置文本框,并使用以下代码: document.getElementById('tbDetails').innerHTML = '<textarea name="taComments" style="height:40px;width:333px" class="f1 greytext" onblur="sb_textarea_onblur(this, \'Check Out Rhapsody Tours\'s Video:\')"
document.getElementById('tbDetails').innerHTML = '<textarea name="taComments" style="height:40px;width:333px" class="f1 greytext" onblur="sb_textarea_onblur(this, \'Check Out Rhapsody Tours\'s Video:\')" onfocus="sb_textarea_onfocus(this, \'Check Out Rhapsody Tours\'s Video:\')">Check Out Rhapsody Tours's Video:</textarea>';
我只需要一种方法来纠正javascript,允许撇号。。。任何想法
多谢各位,
Pauldocument.getElementById('tbDetails').innerHTML='查看Rhapsody Tours的视频:';
在这段代码中,您可以看到撇号前面有一个反斜杠,它将撇号转换为字符串的一部分。这个问题是由这个撇号引起的,因为您的Check Out Rhapsody Tours'
使浏览器认为字符串结束了,除非您将“替换为\”
\\\\'
三个反斜杠,然后是撇号
通过在引号和双引号前面加反斜杠来转义所有引号和双引号:
text.replace(/'/g, "\\'").replace(/"/g, '\\"')
例如
屈服
foo\'s bar is \"baz\"
编辑:我刚意识到这一点,我以为你是在以某种方式动态获取你的内容。如果您只是将一个硬编码字符串插入其中,那么上面的答案就足够了:只需跳过多余的引用。非常感谢您在这个问题上的帮助。。。这就解决了!
text.replace(/'/g, "\\'").replace(/"/g, '\\"')
"foo's bar is \"baz\"".replace(/'/g, "\\'").replace(/"/g, '\\"')
foo\'s bar is \"baz\"