2012-04-12 5 views
-1

aspxページでresponse.writeを使用してjavascript関数を返そうとしています。問題は、私が返す関数は引用符が多く、repsonse.write構文と競合しているということです。ここにサンプルコードがあります。Response.Write()を介して関数を書き戻す

これは、内部の引用符が応答を早く途切れてしまうため、私に問題が生じています。これを行うより良い方法はありますか?

+0

なぜ、それを.aspxマークアップに入れないのですか。 – McGarnagle

+0

引用符をエスケープしようとしましたか?同様に 'Response.Write(" hello.StartsWith( "H"、... ")または内部関数をラップするためにシングルクォートを使用することもできます:' Response.Write( 'hello.StartsWith( "H" 、... Then ');' – faino

+0

正確にはaspxのマークアップは何ですか?私はこの応答を関数内に書く必要がありますので、あなたが意味するものがあれば、コードブロックを正確に使用することはできません –

答えて

0

あなたは二重のqouteを置き換えることができ、「単一qouteでのJavaScriptのように、あなたのjavascriptの両方で」と "同じとC#は、単一qouteオブジェクトはありませんんが、あるRegisterClientScriptBlockは最良の選択肢である可能性があります。

0

ない最善のアプローチ、RegisterClientScriptBlockが優れているが、これはあなたがいないVB.NETのコードはJavaScriptを放出している与えられた動作します:

Response.Write("<script>alert('test');</script>") 

注:あなたは、文字列をGoogleで簡単な検索を行うエスケープする必要がある場合このサイトとあなたは大丈夫でしょう。

+0

二重引用符問題 –

+0

それは、いくつかの検索を行いません、その質問はこのサイトで答えられています。 –

0
Use chr(34) for quote as shown below to create a string of js function: 

sJavaScript = sJavaScript & vbTab & vbTab & "if(TheForm." 
sJavaScript = sJavaScript & "FieldName" & ".value == " & Chr(34) & Chr(34) 
sJavaScript = sJavaScript & ")" & vbCrLf & vbTab & vbTab & vbTab & "{" & vbCrLf 
0

出力している関数がjavascriptの場合は、代わりにシングルクォートを使用します。 javascriptの観点から、一重引用符と二重引用符は、文字列リテラルでは多かれ少なかれ互換性があります(ただし、これは真ではないケースがあると確信しています)。

Response.Write("  If hello.StartsWith('H', ... 
関連する問題