我使用此脚本从codebehind调用javascript。
ClientScript.RegisterStartupScript(this.GetType(), "Exist", "<script language='javascript'>ConfirmRedirect('" + url + "','" + msg + "');</script>", true);
我的javascript代码是
function ConfirmRedirect(url,msg)
{
alert(msg);
window.location.href = url;
}
得到')'预期错误。 这里缺少什么?如果我在没有参数的情况下调用javascript,那么它正在运行。
答案 0 :(得分:1)
查看HTML源代码并将其包含在您的问题/帖子中。
你可能还没有逃过msg
。例如,它可以不包含单引号'
或换行符。
<强>更新强>
一个简单的解决方案是使用Replace()转义所有单引号。
ClientScript.RegisterStartupScript(this.GetType(), "Exist", "<script language='javascript'>ConfirmRedirect('" + url + "','" + msg.Replace("'", "\'") + "');</script>", true);
答案 1 :(得分:1)
删除Script标签,它会起作用,这对我有用:
ClientScript.RegisterStartupScript(this.GetType(), "Exist", "ConfirmRedirect('" + url + "','" + msg + "');", true);
答案 2 :(得分:0)
msg
参数可能包含'
然后代码就像
<script language='javascript'>
ConfirmRedirect('/myurl/somthing.aspx','Here's my message');
</script>
等待近似括号。
答案 3 :(得分:0)
替换你的msg变量。使用这个---
ClientScript.RegisterStartupScript(this.GetType(), "Exist", "javascript:ConfirmRedirect('" + url + "','" + msg.Replace("'","") + "');", true);