会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
自由港
博客园
首页
新随笔
联系
管理
订阅
复写page的Render方法
public
class
SetToken :System.Web.UI.Page
{
protected
override
void
Render(System.Web.UI.HtmlTextWriter writer)
{
StringWriter sw
=
new
StringWriter();
HtmlTextWriter htmlWriter
=
new
HtmlTextWriter(sw);
base
.Render(htmlWriter);
string
html
=
sw.ToString() ;
Regex obj
=
new
Regex(
"
<a.*?(?: |\\\\t|\\\\r|\\\\n)?href=[\\'\
"
]
?
(.
+?
)[\\
'
\"]?(?:(?: |\\\\t|\\\\r|\\\\n)+.*?)?>(.+?)<\\/a.*?>", RegexOptions.IgnoreCase | RegexOptions.Compiled);
MatchCollection matches
=
obj.Matches(html);
CompareList list
=
new
CompareList();
foreach
(Match match
in
matches)
{
string
url
=
match.Groups[
1
].Value.ToLower();
list.Add(url);
}
foreach
(
string
url
in
list)
{
string
newUrl
=
Utils.WriteUrl(url);
html
=
html.Replace(url, newUrl);
}
writer.Write(html) ;
}
}
该代码实现了复写page的rander方法,给解析出来的超链接统一添加token标记。页面使用在页面上继承这个类就可以了。
posted on
2008-04-02 14:36
自由港
阅读(
516
) 评论(
0
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部
公告