【问题标题】:Passing javascript parameter from codebehind error从代码隐藏错误中传递 javascript 参数
【发布时间】:2012-03-22 10:32:21
【问题描述】:

我使用此脚本从代码隐藏中调用 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,那么它正在工作。

【问题讨论】:

    标签: javascript asp.net


    【解决方案1】:

    删除脚本标签,它会工作,这对我有用:

     ClientScript.RegisterStartupScript(this.GetType(), "Exist", "ConfirmRedirect('" + url + "','" + msg + "');", true);
    

    【讨论】:

      【解决方案2】:

      查看 HTML 源代码并将其包含在您的问题/帖子中。

      您可能只是没有足够地逃避msg。例如,它可以不包含单引号 ' 或换行符。

      更新

      一个简单的解决方案是使用Replace() 转义所有单引号。

      ClientScript.RegisterStartupScript(this.GetType(), "Exist", "<script language='javascript'>ConfirmRedirect('" + url + "','" + msg.Replace("'", "\'") + "');</script>", true);
      

      【讨论】:

      • &lt;script type="text/javascript"&gt; //&lt;![CDATA[ &lt;script language='javascript'&gt;ConfirmRedirect('selectappraisee.aspx','Appraisal Details has been upated for ['M.P.Harimurugan'].');&lt;/script&gt;//]]&gt; &lt;/script&gt; 这是 HTML 源代码。我应该如何传递参数? //]]> 为什么这个字符会出现在 html 源代码中?
      • @itzArun 那是因为您的 msg 字符串变量包含该文本。您可以通过在它们前面添加反斜杠来逃避它们,例如; \'.
      【解决方案3】:

      可能msg 参数包含' 之类的符号

      那么代码会是这样的

      <script language='javascript'>
          ConfirmRedirect('/myurl/somthing.aspx','Here's my message');
      </script>
      

      然后等待右括号。

      【讨论】:

      • string msg="Your Comments has been Updated" 这是我为 msg 声明的。
      • @itzArun 然后在 url 上检查相同的想法。
      • 但是我在很多地方都调用了这个脚本。喜欢protected void RedirectMessage(string url,string msg) { ClientScript.RegisterStartupScript(this.GetType(), "Exist", "&lt;script language='javascript'&gt;ConfirmRedirect('" + url + "','" + msg + "');&lt;/script&gt;", true); }
      【解决方案4】:

      替换您的 msg 变量。用这个---

      ClientScript.RegisterStartupScript(this.GetType(), "Exist", "javascript:ConfirmRedirect('" + url + "','" + msg.Replace("'","") + "');", true);
      

      【讨论】:

        猜你喜欢
        • 2011-12-08
        • 2010-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多