2012-08-24 18 views
9

複数行の文字列テンプレートがアンダースコアjで使用するために別のjsファイルにあります。それがブラウザにロードされるときに、ファイルの1行目にJavascript複数行の文字列と予期しないトークンILLEGAL

Uncaught SyntaxError: Unexpected token ILLEGAL

:しかし、関係なく、私は改行をエスケープする方法私はまだ取得していません。

App.Templates['template1'] = '\ 

<div data-role="page" data-theme="c" id="" data-title="">\ 

    <div data-role="content" class="subnav">\ 

     <table id="day-table" cellpadding="0" cellspacing="0" border="0">\ 
      <thead class="ui-body-a">\ 
       <tr>\ 
        <th>T</th>\ 
        <th>J</th>\ 
        <th>H</th>\ 
        <th>C</th>\ 
       </tr>\ 
      </thead>\ 
      <tbody>\ 
      </tbody>\ 
      <tfoot>\ 
       <tr>\ 
        <td class="total-label" colspan="2">Total:</td>\ 
        <td class="total"></td>\ 
       </tr>\ 
       <tr>\ 
        <td class="btn-row">\ 
         <a href="#r" data-role="button" id="add-btn" data-rel="dialog" data-mini="true" data-inline="true" data-icon="add">Add Rows</a>\ 
         <a href="#" data-role="button" id="save-btn" data-rel="dialog" data-mini="true" data-inline="true" data-theme="b" data-icon="check">Save</a>\ 
        </td>\ 
       </tr>\ 
      </tfoot>\ 
     </table>\ 

    </div><!--/content-->\ 

</div><!-- /page -->'; 

+1

あなたが不足しているかなりの数の '' \\さん – Esailija

+0

私はJavascriptを愛し、時にはそれは私が私の目の外にsobtearsをたくさんやりたいことができます。 –

答えて

11

ラインターミネータは文字列で許可されていない、あなたはそれらをエスケープする必要があります:

App.Templates['template1'] = '\ 
\ 
<div data-role="page" data-theme="c" id="" data-title="">\ 
\ 
    <div data-role="content" class="subnav">\ 
\ 
     <table id="day-table" cellpadding="0" cellspacing="0" border="0">\ 
      <thead class="ui-body-a">\ 
       <tr>\ 
        <th>T</th>\ 
        <th>J</th>\ 
        <th>H</th>\ 
        <th>C</th>\ 
       </tr>\ 
      </thead>\ 
      <tbody>\ 
      </tbody>\ 
      <tfoot>\ 
       <tr>\ 
        <td class="total-label" colspan="2">Total:</td>\ 
        <td class="total"></td>\ 
       </tr>\ 
       <tr>\ 
        <td class="btn-row">\ 
         <a href="#r" data-role="button" id="add-btn" data-rel="dialog" data-mini="true" data-inline="true" data-icon="add">Add Rows</a>\ 
         <a href="#" data-role="button" id="save-btn" data-rel="dialog" data-mini="true" data-inline="true" data-theme="b" data-icon="check">Save</a>\ 
        </td>\ 
       </tr>\ 
      </tfoot>\ 
     </table>\ 
\ 
    </div><!--/content-->\ 
\ 
</div><!-- /page -->'; 

それが簡単にあなたが行ターミネータを持っている場合は、あなたのテキストエディタで表示空白をオンにすることができ、あなたがすべき参照してくださいようにするには私はそれを考え出した

enter image description here

+0

答えをありがとう。たとえ私が試行錯誤してそれを理解したとしても、私はあなたを答えとして受け入れます。 –

+0

@XMO重要なことは、「見えない」改行文字をエスケープしていることです。「空の」行にはまだ改行文字があります。テキストエディタで目に見える改行を有効にして、エスケープする必要がある場所を表示することができます。 – Esailija

+0

私はSublimeTextでそれを行う方法を理解する必要があります。ありがとう! –

2

:このような何かを参照してください。空行もエスケープする必要があります。

App.Templates['template1'] = '\ 
\ 
<div data-role="page" data-theme="c" id="" data-title="">\ 
\ 
    <div data-role="content" class="subnav">\ 
\ 
     <table id="day-table" cellpadding="0" cellspacing="0" border="0">\ 
      <thead class="ui-body-a">\ 
       <tr>\ 
        <th>T</th>\ 
        <th>J</th>\ 
        <th>H</th>\ 
        <th>C</th>\ 
       </tr>\ 
      </thead>\ 
      <tbody>\ 
      </tbody>\ 
      <tfoot>\ 
       <tr>\ 
        <td class="total-label" colspan="2">Total:</td>\ 
        <td class="total"></td>\ 
       </tr>\ 
       <tr>\ 
        <td class="btn-row">\ 
         <a href="#r" data-role="button" id="add-btn" data-rel="dialog" data-mini="true" data-inline="true" data-icon="add">Add Rows</a>\ 
         <a href="#" data-role="button" id="save-btn" data-rel="dialog" data-mini="true" data-inline="true" data-theme="b" data-icon="check">Save</a>\ 
        </td>\ 
       </tr>\ 
      </tfoot>\ 
     </table>\ 
\ 
    </div><!--/content-->\ 
\ 
</div><!-- /page -->'; 
+0

はい、本当にエスケープする必要がある改行文字です。特定の行に何があるかは関係ありません。 – pimvdb

関連する問題