Chrome内核下由ashx输出的js代码不起作用的解决方法

  

复制代码 代码如下:

  public class Script

  {

  public static void Alert(string message)

  {

  ResponseScript("    alert('" + message + "');");

  }

  public static void ResponseScript(string script)

  {

  HttpContext.Current.Response.Write("<script type=\"text/javascript\">\n//<![CDATA[\n");

  HttpContext.Current.Response.Write( script );

  HttpContext.Current.Response.Write("\n//]]>\n</script>\n");

  }

  }

  在form.ashx中调用:

  

复制代码 代码如下:

  Script.AlertAndGoBack("温馨提示:有重复的用户!");

  结果在360的新版6.0中,一直不起作用,只是输出了

  

复制代码 代码如下:

  <script type="text/javascript">

  //<![CDATA[

  alert('温馨提示:有重复的用户!');

  window.history.back();

  //]]>

  </script>

  但在IE中显示又完全正常。

  后来发现,原来360浏览器的极速模式调用的是Google浏览器的Chrome内核,所以Chrome浏览器里这段代码也是不起作用。

  解决办法:

  

复制代码 代码如下:

  //将:

  context.Response.ContentType = "text/plain";

  //改为:

  context.Response.ContentType = "text/html";