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 );,就会弹框如下:请问这是为什么?
{
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 );,就会弹框如下:请问这是为什么?
{
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) ;
}
参考