0

我正在尝试创建以下字符串:

<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 中得到一个编译错误,说“换行符不变”

4

3 回答 3

2
"<script type='text/javascript' langauage='javascript' src='test.js'></script>"

嗯,是的,你在 <script> 元素中有包含 </script> 的字符串。这将关闭外部 <script>,因此出现在 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'>

正如错误所说,它包含一个“没有终止双引号的字符串。

尝试转义字符,以便其他脚本块不会将它们视为标记:

"\x3Cscript type='text/javascript' src='test.js'>\x3C/script>"
于 2009-09-11T15:40:52.750 回答
1

你的问题是结束脚本标签

http://support.microsoft.com/kb/827420

解决它的机智:

".....<"+"/SCRIPT>"

或许

".....<\/script>"

改用 ClientScriptManager 并使用 RegisterClientScriptInclude。这样,您只需要将文件名包含在字符串中。

ClientScriptManager.RegisterClientScriptInclude

ClientScriptManager scriptManager = new ClientScriptManager(); scriptManager.RegisterClientScriptInclude("filename.js");
于 2009-09-11T15:30:43.577 回答
-1
@"<script language="Javascript" src="/utility/thickbox/thickbox-custom.js"></script>"
于 2009-09-11T15:12:55.833 回答