【发布时间】:2015-05-16 12:29:53
【问题描述】:
我希望每个外部“A”链接都为 Target 设置属性,但忽略所有内部链接
例子:
<a href="http://www.somelink here" title="Some Title">Some Text</a>
变成:
<a href="http://www.somelink here" title="Some Title" target="_blank">Some Text</a>
但不要理会任何非 http 链接(mailto、~/、/../PageName.aspx 等。
我编写了一个 VB.NET(不是 c#)类,将其添加到我的 Web 项目的 APP_CODE 文件夹中,但代码被完全忽略
Public Class MyLinks
Inherits HyperLink
Protected Overrides Sub Render(writer As HtmlTextWriter)
Dim alink As HyperLink = Me
If alink.NavigateUrl.StartsWith("http") Then
writer.RenderBeginTag(HtmlTextWriterTag.A)
writer.AddAttribute(HtmlTextWriterAttribute.Href, alink.NavigateUrl)
writer.AddAttribute(HtmlTextWriterAttribute.Title, alink.Text)
writer.AddAttribute(HtmlTextWriterAttribute.Value, alink.Text)
writer.AddAttribute(HtmlTextWriterAttribute.Target, "_blank")
writer.RenderEndTag()
End If
End Sub
End Class
显然,我不希望我的网站包含数千个超链接控件,但我继承了它,因为我不知道访问 href 和 tex 属性的另一种方法。
我做错了什么以及如何纠正它?
【问题讨论】: