我目前正在尝试从.NET页面注册JS函数调用,该页面只调用关闭窗口的.aspx页面上的一个小函数。
RegisterClientScriptBlock代码如下:
Page.ClientScript.RegisterClientScriptBlock (typeof(Page), "closeBox", "<script type='text/javascript'>closeBox();</script>");
这种事情在不同页面上的应用程序的其他地方起作用。但是,在这种情况下,我得到一个运行时JS错误:错误:预期'/',当我调试时,确定插入的javascript是:
<script type='text/javascript'>closeBox();<
如您所见,它尚未添加/ script&gt;由于某些原因!我试图自己遗漏标签并使用:
Page.ClientScript.RegisterClientScriptBlock (typeof(Page), "closeBox", "closeBox();", true);
但结果相同。
我也试过RegisterStartupScript无济于事。
之前有其他人遇到过这个吗?关于是什么导致它以及如何解决它的任何想法?
答案 0 :(得分:0)
我不确定它是否完全一样(我的记忆不像以前那样),但我想我过去遇到了类似的问题。解决方案是在脚本的各个部分之间放置一些行终止符,即
Page.ClientScript.RegisterClientScriptBlock (typeof(Page), "closeBox", "<script type='text/javascript'>\n\rcloseBox();\n\r</script>");
答案 1 :(得分:0)
这个RegisterClientScriptBlock在哪里?是在<script runat="server">
元素中吗?
如果是这样,aspx解析器会将C#字符串文字中的</script>
视为封闭script
元素的结尾,并将停在那里。如果你想把序列</script>
放在<script>
里面(这也适用于普通的JavaScript),你必须将其转义以分解序列。一个好方法是:
"\x3C/script"
答案 2 :(得分:0)
错误原来是完全不相关的。