加载动态内容时,jquery unterminated string literal

时间:2014-03-24 10:14:52

标签: javascript php jquery

$str is loading dynamic content from admin panel (tinymce) in following format

$str = 'First Line
    Second Line 
   Third Line';

Now when i try to access this variable then it gives me unterminated string literal  
<script type="text/javascript">
    $(document).ready(function() {
        var a = '<?php echo $str;?>';
        $('#abc').html(a);                      
    });    
</script>
<div id="abc"></div>

当我将字符串转换为$str = 'First line Second line Third line';时,它不会出错,但我的字符串是在上面。

2 个答案:

答案 0 :(得分:2)

将PHP变量转储到JavaScript时,总是使用json_encode。像这样:

var a = <?php echo json_encode($str); ?>;

请注意PHP代码周围没有引号,这很重要! PHP将为您添加引号并正确转义所有内容。

答案 1 :(得分:0)

这是换行符,它们在JavaScript字符串文字中无效。如果您想在JavaScript字符串中使用多行,请使用反斜杠(\):

var testString = 'This is \
    a test';

即使这样,当设置为HTML元素的内容时,也会删除多个空格(包括换行符)。

那就是说,我不明白你为什么要使用JavaScript来做这件事,你可以这样做:

<div id="jaspreet"><?php echo $str;?></div>