aspxページでresponse.writeを使用してjavascript関数を返そうとしています。問題は、私が返す関数は引用符が多く、repsonse.write構文と競合しているということです。ここにサンプルコードがあります。Response.Write()を介して関数を書き戻す
これは、内部の引用符が応答を早く途切れてしまうため、私に問題が生じています。これを行うより良い方法はありますか?
aspxページでresponse.writeを使用してjavascript関数を返そうとしています。問題は、私が返す関数は引用符が多く、repsonse.write構文と競合しているということです。ここにサンプルコードがあります。Response.Write()を介して関数を書き戻す
これは、内部の引用符が応答を早く途切れてしまうため、私に問題が生じています。これを行うより良い方法はありますか?
あなたは二重のqouteを置き換えることができ、「単一qouteでのJavaScriptのように、あなたのjavascriptの両方で」と "同じとC#は、単一qouteオブジェクトはありませんんが、あるRegisterClientScriptBlockは最良の選択肢である可能性があります。
ない最善のアプローチ、RegisterClientScriptBlock
が優れているが、これはあなたがいないVB.NETのコードはJavaScriptを放出している与えられた動作します:
Response.Write("<script>alert('test');</script>")
注:あなたは、文字列をGoogleで簡単な検索を行うエスケープする必要がある場合このサイトとあなたは大丈夫でしょう。
二重引用符問題 –
それは、いくつかの検索を行いません、その質問はこのサイトで答えられています。 –
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
出力している関数がjavascriptの場合は、代わりにシングルクォートを使用します。 javascriptの観点から、一重引用符と二重引用符は、文字列リテラルでは多かれ少なかれ互換性があります(ただし、これは真ではないケースがあると確信しています)。
Response.Write(" If hello.StartsWith('H', ...
なぜ、それを.aspxマークアップに入れないのですか。 – McGarnagle
引用符をエスケープしようとしましたか?同様に 'Response.Write(" hello.StartsWith( "H"、... ")または内部関数をラップするためにシングルクォートを使用することもできます:' Response.Write( 'hello.StartsWith( "H" 、... Then ');' – faino
正確にはaspxのマークアップは何ですか?私はこの応答を関数内に書く必要がありますので、あなたが意味するものがあれば、コードブロックを正確に使用することはできません –