2016-09-26 12 views
0

このコードは、要素のinnerHtmlの一部としてページのHTMLに挿入されます。クリックするとボタンのようなスパンが作成され、一定のテキストとその下のテキスト「Thiswindow」を持つJQueryUIウィンドウが開きます。JQuery HTML文字列にHTMLにスペースが含まれている場合のリテラルエラー

SyntaxError: unterminated string literal 

それはコードを壊すこと、どこでもこのHTMLには、スペースの存在だ:私はテキストを変更した場合

string custom_training_html = "Thiswindow"; // Note this line here. 
link = "<span class=\"start_course_button\" onclick="; 
link += "javascript:$(\"#temp_test_window\").dialog({minWidth:800,minHeight:600});$(\"#temp_test_custom_html\").html('" + custom_training_html + "');>Test JQueryUI"; 
link += "</span>\n"; 

しかし、「このウィンドウ」に、私が得る「Thiswindow」。このサイトの他の質問は、問題はHTMLの改行であると言いますが、私は何も持っていないと思います。私はちょうど<span>コードを含む文字列を構築しています。作業バージョンと非稼働バージョンの唯一の違いは、スペース文字が含まれていることです。どうしましたか? FYI

、次のようにルックスを開けますウィンドウ:

<div id="temp_test_window" title="Chaucer's Prologue (The Monk)"> 
    A monk there was, one made for mastery<br />... [snip] 
    <div id="temp_test_custom_html">Content Goes Here</div> 
</div> 

EDIT:私は、独自の機能にJSを置くためのコードをクリーンアップしましたが、それは問題を解決していません。私のメインの.aspxファイルでは私が持っている:

function GenerateTestTrainingContent(content) 
      { 
       $('#temp_test_window').dialog({minWidth:800,minHeight:600}); 
       $('#temp_test_custom_html').html(content); 
      } 
[and later, outside the <script> tags:] 
<div id="temp_test_custom_html">Content Goes Here</div> 

そして.aspx.csで

は、私が「リンク」などの一部のHTMLを作成し、このコードを持っているファイル:私のリンクを与え、作品

link = "<span class='start_course_button' onclick=javascript:GenerateTestTrainingContent('OneWord');>"; 
link += "Test JQueryUI</span>\n"; 

テキスト "OneWord"が現れるポップアップJQueryUIウィンドウを呼び出す。私は同じコードで「一つの言葉」に「1ワード」を変更する場合は、私が取得:

SyntaxError: unterminated string literal 
javascript:GenerateTestTrainingContent('One 

だから、再び、全くスペースは=作品は、任意のスペース=は動作しません。

+0

、あなたは常にそれらのキーワード「VAR」を使用して... –

+0

私が指摘しておく必要があります。上記のコードは、JSを作成し、C#です。文字列変数はC#変数です。 – Snow

+0

C#エラーは、文字列が正しく終了していないことを示しています。しかし、文字列の特定の文字列または部分を示すものではありません。私は 'onclick'属性の内容の引用ラッパーがないと思われます。また、混乱を避けるためにJSコードを独自のスクリプトブロックに移動することをお勧めします。 – Twisty

答えて

1

私のコメントで言及したように、私は自分の<script>ブロックにJSを移動します。私はまた、"'の使用をクリーンアップして、混乱を少なくします。 JavaScriptを「文字列」変数の定義のようなものを持っていない

string custom_training_html = "This window"; // Note this line here. 
string link = ""; 
link += "<span class='start_course_button'>Test JQueryUI</span>\r\n"; 
link += "<script>\r\n"; 
link += "$('#temp_test_window').dialog({ autoOpen: false, minWidth:800, minHeight:600 });\r\n"; 
link += "$('#temp_test_custom_html').html('" + custom_training_html + "');\r\n"; 
link += "$('.start_course_button').click(function(){ $('#temp_test_window').dialog('open'); });\r\n"; 
link += "</script>\r\n"; 
+0

JSを独自のブロックに移動し、引用符の使用をチェックすることは良い考えです。しかし、スペースがない文字列は動作しますが、スペースを含む文字列は動作しません。編集された記事を参照してください。 – Snow

+0

@Snowそれは本当に奇妙なものですが、私はそれがC#に関係していてJSではないと思います。私はASP.NETテストエリアを持っていないので、問題のその要素を実際にテストすることはできません。投稿を編集したり、使用している.NET Frameworkの詳細を含めたりすることができます。 – Twisty

+0

@Snowは、分離されたJSコードから 'click'イベントを呼び出すことはできませんか?なぜあなたは 'onclick'属性でそれを実行していますか? – Twisty

関連する問題