質問

次の文字列を作成しようとしています:

<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>"
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top