none
JS一回车会无效?方法中Response.Write(/*JSalert脚本*/)也无效? RRS feed

  • 问题

  • 当我想输入一行数据时比如

    <script>alert("受到法受到士大夫的发

    士大夫受到副食店发受到发

    ")</script>

    这样的话就无效了

    <script>alert("受到法受到士大夫的发士大夫受到副食店发受到发")</script>

    这样才有效

     

    而我在方法中调用Response.Write(/*JS脚本//);时 他无效

    不知道为什么。。但有时我返回布尔类型并跳出后才有 有时却不行

    不知道用c#要输出js脚本时  有什么需要注意的地方没?
    2009年1月2日 20:55

答案

  •  

    Code Snippet
    page.ClientScript.RegisterStartupScript(page.GetType(),"message", " ");

     

     

     

    输出脚本

     

     

    Code Snippet

    这个是整理的脚本

     

    using System;
    using System.Text;
    namespace ROYcms.Common
    {
     /// <summary>
     /// 显示消息提示对话框。
     /// 杜耀辉
     /// 2006.10.1 http://www.roycms.cn
     /// </summary>
     public class MessageBox
     {  
      private  MessageBox()
      {   
      }

      /// <summary>
      /// 显示消息提示对话框
      /// </summary>
      /// <param name="page">当前页面指针,一般为this</param>
      /// <param name="msg">提示信息</param>
      public static void  Show(System.Web.UI.Page page,string msg)
      {           
                page.ClientScript.RegisterStartupScript(page.GetType(),"message", "<script language='javascript' defer>alert('" + msg.ToString() + "');</script>");
      }

      /// <summary>
      /// 控件点击 消息确认提示框
      /// </summary>
      /// <param name="page">当前页面指针,一般为this</param>
      /// <param name="msg">提示信息</param>
      public static void  ShowConfirm(System.Web.UI.WebControls.WebControl Control,string msg)
      {
       //Control.Attributes.Add("onClick","if (!window.confirm('"+msg+"')){return false;}");
       Control.Attributes.Add("onclick", "return confirm('" + msg + "');") ;
      }

      /// <summary>
      /// 显示消息提示对话框,并进行页面跳转
      /// </summary>
      /// <param name="page">当前页面指针,一般为this</param>
      /// <param name="msg">提示信息</param>
      /// <param name="url">跳转的目标URL</param>
      public static void ShowAndRedirect(System.Web.UI.Page page,string msg,string url)
      {
       StringBuilder Builder=new StringBuilder();
       Builder.Append("<script language='javascript' defer>");
       Builder.AppendFormat("alert('{0}');",msg);
       Builder.AppendFormat("top.location.href='{0}'",url);
       Builder.Append("</script>");
                page.ClientScript.RegisterStartupScript(page.GetType(), "message", Builder.ToString());

      }
      /// <summary>
      /// 输出自定义脚本信息
      /// </summary>
      /// <param name="page">当前页面指针,一般为this</param>
      /// <param name="script">输出脚本</param>
      public static void ResponseScript(System.Web.UI.Page page,string script)
      {
                page.ClientScript.RegisterStartupScript(page.GetType(), "message", "<script language='javascript' defer>" + script + "</script>");
                
      }

     }
    }

     

     


    2009年1月7日 6:44

全部回复

  • 对,是无效的,不符合js语法的,你这样做

    加入 C#中的字符是这样

    string s = @"受到法受到士大夫的发

    士大夫受到副食店发受到发

    ";

     

    输出则需要进行转换

    str = s.Replace("\r\n","\\r\\n">);

    str = str.Replace("\"","\\"");

     

    Response.Write("alert(\"" + str + "\")");

     

    要注意换行和引号的替换

    2009年1月3日 0:52
    版主
  • 在方法中而不是控件事件中Response.Write(/*弹出JS脚本*/)能实现吗?

    这里需要注意什么?

    (当把脚本放在控件事件里时一切正常,但放在方法里时 有时会无效)

    2009年1月3日 15:57
  • 完全可以的,只要放的地方正确和使用方法得当
    2009年1月4日 0:56
    版主
  • 不好意思 解除答案

    因为又问题~~~~~~~~~~~~~~~~~~~~

    脚本输出都是用Respon.write()

    这样的话输出的JS脚本在HTML前面

     

    2009年1月7日 1:28
  •  

    Code Snippet
    page.ClientScript.RegisterStartupScript(page.GetType(),"message", " ");

     

     

     

    输出脚本

     

     

    Code Snippet

    这个是整理的脚本

     

    using System;
    using System.Text;
    namespace ROYcms.Common
    {
     /// <summary>
     /// 显示消息提示对话框。
     /// 杜耀辉
     /// 2006.10.1 http://www.roycms.cn
     /// </summary>
     public class MessageBox
     {  
      private  MessageBox()
      {   
      }

      /// <summary>
      /// 显示消息提示对话框
      /// </summary>
      /// <param name="page">当前页面指针,一般为this</param>
      /// <param name="msg">提示信息</param>
      public static void  Show(System.Web.UI.Page page,string msg)
      {           
                page.ClientScript.RegisterStartupScript(page.GetType(),"message", "<script language='javascript' defer>alert('" + msg.ToString() + "');</script>");
      }

      /// <summary>
      /// 控件点击 消息确认提示框
      /// </summary>
      /// <param name="page">当前页面指针,一般为this</param>
      /// <param name="msg">提示信息</param>
      public static void  ShowConfirm(System.Web.UI.WebControls.WebControl Control,string msg)
      {
       //Control.Attributes.Add("onClick","if (!window.confirm('"+msg+"')){return false;}");
       Control.Attributes.Add("onclick", "return confirm('" + msg + "');") ;
      }

      /// <summary>
      /// 显示消息提示对话框,并进行页面跳转
      /// </summary>
      /// <param name="page">当前页面指针,一般为this</param>
      /// <param name="msg">提示信息</param>
      /// <param name="url">跳转的目标URL</param>
      public static void ShowAndRedirect(System.Web.UI.Page page,string msg,string url)
      {
       StringBuilder Builder=new StringBuilder();
       Builder.Append("<script language='javascript' defer>");
       Builder.AppendFormat("alert('{0}');",msg);
       Builder.AppendFormat("top.location.href='{0}'",url);
       Builder.Append("</script>");
                page.ClientScript.RegisterStartupScript(page.GetType(), "message", Builder.ToString());

      }
      /// <summary>
      /// 输出自定义脚本信息
      /// </summary>
      /// <param name="page">当前页面指针,一般为this</param>
      /// <param name="script">输出脚本</param>
      public static void ResponseScript(System.Web.UI.Page page,string script)
      {
                page.ClientScript.RegisterStartupScript(page.GetType(), "message", "<script language='javascript' defer>" + script + "</script>");
                
      }

     }
    }

     

     


    2009年1月7日 6:44