从codebehind错误传递javascript参数
我使用这个脚本从codebehind调用javascript从codebehind错误传递javascript参数,javascript,asp.net,Javascript,Asp.net,我使用这个脚本从codebehind调用javascript ClientScript.RegisterStartupScript(this.GetType(), "Exist", "<script language='javascript'>ConfirmRedirect('" + url + "','" + msg + "');</script>", true); 我收到“')预期错误。 我错过了什么?如果我调用的javascript没有参数,那么它就工作了。可能m
ClientScript.RegisterStartupScript(this.GetType(), "Exist", "<script language='javascript'>ConfirmRedirect('" + url + "','" + msg + "');</script>", true);
我收到“')预期错误。
我错过了什么?如果我调用的javascript没有参数,那么它就工作了。可能
msg
参数包含类似'
然后代码将类似于
<script language='javascript'>
ConfirmRedirect('/myurl/somthing.aspx','Here's my message');
</script>
ConfirmRedirect(“/myurl/somthing.aspx”,“这是我的消息”);
然后等待右括号。查看HTML源代码并将其包含在问题/帖子中 您可能只是没有逃过足够的
msg
。例如,它可以不包含单引号,
或换行符
更新
一个简单的解决方案是使用转义所有单引号
ClientScript.RegisterStartupScript(this.GetType(),“Exist”,“ConfirmRedirect(““+url+”,“+msg.Replace(“”,“\”)+”);”,true);
删除脚本标记,它就会工作,这对我来说很有用:
ClientScript.RegisterStartupScript(this.GetType(), "Exist", "ConfirmRedirect('" + url + "','" + msg + "');", true);
更换你的味精变量。用这个---
string msg=“您的评论已更新”
这是我为msg声明的内容。@itzArun然后检查url上是否有相同的想法。但我在许多地方调用此脚本。类似于protectedvoidredirectmessage(stringurl,stringmsg){ClientScript.RegisterStartupScript(this.GetType(),“Exist”,“ConfirmRedirect(“+url+”,“+msg+”);”,true);}
/ConfirmRedirect('selectevaluee.aspx','M.P.Harimurugan']的评估详细信息已升级;//]>代码>这是我得到的HTML源代码。我应该如何传递参数?//]>为什么这些字符来自html源代码?@itzArun这是因为msg
string变量包含该文本。您可以通过在它们前面添加反斜杠来避开它们,如<代码>\'。
ClientScript.RegisterStartupScript(this.GetType(), "Exist", "<script language='javascript'>ConfirmRedirect('" + url + "','" + msg.Replace("'", "\'") + "');</script>", true);
ClientScript.RegisterStartupScript(this.GetType(), "Exist", "ConfirmRedirect('" + url + "','" + msg + "');", true);
ClientScript.RegisterStartupScript(this.GetType(), "Exist", "javascript:ConfirmRedirect('" + url + "','" + msg.Replace("'","") + "');", true);