質問
次の文字列を作成しようとしています:
<script runat="server" type="text/C#">
protected void Page_Load(object sender, EventArgs e)
{
Parent.Page.ClientScript.RegisterStartupScript(typeof(Page), "test", "<script type='text/javascript' langauage='javascript' src='test.js'></script>");
}
</script>
まだVSでコンパイルエラーが発生し、<!> quot;改行が定数<!> quot;
解決
問題は終了スクリプトタグです
http://support.microsoft.com/kb/827420
ウィットを解く:
".....<"+"/SCRIPT>"
または多分
".....<\/script>"
代わりにClientScriptManagerを使用し、RegisterClientScriptIncludeを使用します。この方法では、ファイル名を文字列にするだけで済みます。
ClientScriptManager.RegisterClientScriptInclude
ClientScriptManager scriptManager = new ClientScriptManager(); scriptManager.RegisterClientScriptInclude("filename.js");
他のヒント
"<script type='text/javascript' langauage='javascript' src='test.js'></script>"
そうですね、<!> lt; / script <!> gt;を含む文字列があります。 <!> lt; script <!> gt;内素子。これで外側の<!> lt; script <!> gt;が閉じられるため、runat-serverスクリプト内にあるように見えるコードは次のようになります。
protected void Page_Load(object sender, EventArgs e)
{
Parent.Page.ClientScript.RegisterStartupScript(typeof(Page), "test", "<script type='text/javascript' langauage='javascript' src='test.js'>
そしてエラーが言っているように、それは<!> quot; stringを含み、終端の二重引用符はありません。
文字をエスケープして、他のスクリプトブロックがそれらをマークアップとして認識しないようにします。
"\x3Cscript type='text/javascript' src='test.js'>\x3C/script>"
@"<script language="Javascript" src="/utility/thickbox/thickbox-custom.js"></script>"
所属していません StackOverflow