“未捕获的SyntaxError:意外的标识符”,其中包含字符串中的转义引号

时间:2013-01-15 19:49:03

标签: javascript

当我尝试使用jQuery打开已保存的博客帖子时,我在第220行获得了Uncaught SyntaxError: Unexpected identifier。第220行是Hans kommande film som har premiär nu på...。请参阅下面从Google Chromes控制台复制的完整代码。

    $('body').on('click', '#load-blogpost-ill-be-back', function() {

        var subject = "I\'ll be back!";
        var message = "[url=http://www.imdb.com/name/nm0000216/]Arnold Schwarzenegger[/url] är en sann legendar när det gäller kända repliker och karriär. I alla fall för min del. Hans \"I\'ll be back!\" i första [url=http://www.imdb.com/title/tt0088247/]Terminator[/url], är en klar klassiker som används ofta i all möjlig media, bilder som filmer. Jag tittade nyss på en [url=http://instagram.com/p/Ugz4LBDcfx/]Instagram-bild[/url] som han hade delat ut på Facebook, såg man att han börjar på att bli en gammal man. En gammal man i äkta papparoll-stuk, vilket gillas. I alla fall av mig :)

Hans kommande film som har premiär nu på fredag i [url=http://sv.wikipedia.org/wiki/USA]USA[/url], [url=http://www.imdb.com/title/tt1549920/]The Last Stand[/url], verkar för övrigt vara en väldigt lovande film med många kända skådespelare; [url=http://www.imdb.com/name/nm0424216/]Johnny Knoxville[/url], [url=http://www.imdb.com/name/nm0350079/]Luis Guzmán[/url], [url=http://www.imdb.com/name/nm0001780/]Peter Stormare[/url], [url=http://www.imdb.com/name/nm0001845/]Forest Whitaker[/url] och såklart våran kära Arnold som har huvudrollen i filmen. Titta på filmen förhandstitt nedan.
Uncaught SyntaxError: Unexpected identifier


[yt]https://www.youtube.com/embed/BS-FyAh9cv8[/yt]";

        $(this).replaceWith(subject);
        $('input[name="textfield-subject"]').val(subject);
        $('textarea[name="textarea-message"]').val(message).focus();

        // VISA
        $('.blogpost-preview-ruler').show();
        $('#blogpost-preview-head').show();

        // VISA & SKRIV UT
        $('#blogpost-preview-subject').show().html(subject);
        $('#blogpost-preview').show().html(bbcode_js(message));


        var selectedID = [];
        $(':checkbox[name="checkbox[]"]').each(function() {
                            if($(this).val() == '4') {
                    $(this).attr('checked', true);
                }
                    });

    });

这条线有什么问题?它是链接中的/吗?

2 个答案:

答案 0 :(得分:3)

问题是JavaScript不支持这样的多行字符串。您必须使用\结束每一行(不推荐,因为之后的空格也会产生语法错误)或使用连接。

,例如,(注意它们是两个单独的字符串,并且注入了\n。)

var message = "[url=http://www.imdb.com/name/nm0000216/]Arnold Schwarzenegger[/url] är en sann legendar när det gäller kända repliker och karriär. ... :)\n\n" +
          "Hans kommande film som har premiär nu på fredag i [url=http://sv.wikipedia.org/wiki/USA]USA[/url], [url=http://www.imdb.com/title/tt1549920/]The Last Stand[/url], ...";

答案 1 :(得分:0)

json_encode()是一个很好的方法,可以让PHP变量中的字符串可用于Javascript。

echo "var message = ". json_encode($your_string_var_here);