protected override void Render( System.Web.UI.HtmlTextWriter writer )
{
if ( m_bShowToolBar )
{
                //writer.WriteLine(@"<link type=""text/css"" rel=""stylesheet"" href=""{0}forum.css"" />", Data.ForumRoot);
                //writer.WriteLine(@"<link type=""text/css"" rel=""stylesheet"" href=""{0}"" />", ThemeFile("theme.css"));
string script = "";
if ( LoadMessage.Length > 0 )
script = String.Format( "<script language='javascript'>\nonload=function(){1}\nalert(\"{0}\")\n{2}\n</script>\n", LoadMessage, '{', '}' );#if TODO
if(m_strRefreshURL!=null) 
script = script.Insert(0,String.Format("<meta http-equiv=\"Refresh\" content=\"10;{0}\">\n",m_strRefreshURL));
#else
if ( m_strRefreshURL != null && m_nRefreshTime >= 0 )
script = script.Insert( 0, String.Format( "<meta http-equiv=\"Refresh\" content=\"{1};url={0}\">\n", m_strRefreshURL, m_nRefreshTime ) );
#endif // BEGIN HEADER
if ( m_headerInfo != null && ForumControl.LockedForum == 0 )
writer.Write( m_headerInfo );
// END HEADER RenderBody( writer ); 
writer.WriteLine( script );
}
}
首次加载script 为空,执行到writer.WriteLine( script );,就会弹框如下:请问这是为什么?

解决方案 »

  1.   

    protected override void Render(System.Web.UI.HtmlTextWriter writer) 

    StringWriter sw = new StringWriter(); 
    HtmlTextWriter htmlWriter = new HtmlTextWriter(sw); 
    base.Render(htmlWriter); 
    //当前用户选择的风格css 
    string css = "<link href="css url" rel="stylesheet" type="text/css">"; 
    string html = sw.ToString() ; 
    int startPoint = html.IndexOf("</head>", StringComparison.CurrentCultureIgnoreCase); 
    if(startPoint > 0) 
    {
    html = html.Insert(startPoint, css); 

    writer.Write(html) ; 
    }
    参考
      

  2.   

    "<script language='javascript'>\nonload=function(){1}\nalert(\"{0}\")window.onload