1

Html コードを生成する JavaScript をコーディングしました。コードを文字列として保存し、それを にコピーしようとしています<textarea>が、何らかの理由でそれを使用するとGoogle Chromeescape()で表示されます。Uncaught SyntaxError: Unexpected token ILLEGAL理由がわかりません。これが私のコードです

            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 に答える