1

嘿,我编写了一段生成 Html 代码的 JavaScript,我试图将代码保存为字符串,然后将其复制到 a<textarea>但由于某种原因,当我使用escape()它时,它会Uncaught SyntaxError: Unexpected token ILLEGAL在 Google Chrome 中出现。我不知道为什么,这是我的代码

            document.getElementById("share").value=escape('
<script src="main.js"></script>
<script src="event.js"></script>
<script src= "init.js"></script>
<script src= "util.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
<canvas width="1280" height="500" id="header_canvas"     >Please Update your browser to view this page</canvas>
<canvas width="1280" height="500" id="sub_header_canvas" >Please Update your browser to view this page</canvas>

<script>
function submit()
{
    header_text                 ='+document.getElementById("title").value+';
    cover_time_pan              ='+document.getElementById("cover_turn_time").value+';
    cover_turn_pause_time       ='+document.getElementById("cover_turn_pause").value+';
    text_time_pan               ='+document.getElementById("text_turn_time").value+';
    text_turn_pause_time        ='+document.getElementById("text_turn_pause").value+';
    header_reverse              ='+document.getElementById("reverse").checked+';
    header_grad_percent     ='+document.getElementById("grad_height").value+';
    header_grad_color       ='+document.getElementById("grad_colour").value+';

    ct0.src                 ='+document.getElementById("ct0").value+';
    ct1.src                 ='+document.getElementById("ct1").value+';
    ct2.src                 ='+document.getElementById("ct2").value+';

    tt0.src                 ='+document.getElementById("tt0").value+';
    tt1.src                 ='+document.getElementById("tt1").value+';
    tt2.src                 ='+document.getElementById("tt2").value+';

     cover_textures[0]=ct0;
     cover_textures[1]=ct1;
     cover_textures[2]=ct2;
     text_textures[0]=tt0;
     text_textures[1]=tt1;
         text_textures[2]=tt2;


    resize_window();
}
</script>       
<script>
    init_all();
    submit();
</script>

');
4

1 回答 1

3

问题是因为 javascript 字符串必须在换行符之前终止。\n 存在的原因是允许开发人员以一种简单的方式将换行符(ASCII:10)放入字符串中。

例如,当您有一个如下所示的字符串时:

//Note terminating double quote is not there , similar to your code
var foo = "Bob 

您的代码此时将出现语法错误并停止运行。

如果您希望在多行中包含一个字符串,则必须在终止该行之前插入一个反斜杠字符“\”,如下所示:

//Correct way of writing code
var foo = "Bob \
is \
cool.";

但是,该字符串不会在字符串被分成单独行的位置包含 \n 字符。在字符串中插入换行符的唯一方法是插入一个值为 10 的字符,最简单的方法是 \n 转义字符。

var foo = "Bob\nis\ncool.";
于 2013-07-08T04:23:04.573 回答