两年前在pro.html.it的时候,我写了一篇关于如何使用纯CSS和少量的DOM树来动态确定标题框的文章。最近我在玩一个新技术:使用Javascript+CSS去实现那些以前单纯使用Javascript做脚本或者单纯使用CSS做设计的技术。这个星期关于链接冒泡的新文章在Pro站上得到了发表。
链接冒泡其实非常容易实现,工作机制也很简单:
1.检查DOM2.如果找到关于链接的信息,title,href等就被传递给DOM树
3.当鼠标滑过时,含有链接相关信息的气泡(CSS设定格式)显示出来。
很简单不是吗?不仅工作机制很简单,就连代码以及需要的文件也很简单:
1.一个不足2kb的Javascript文件
2.一个设定样式的CSS
3.一张设定形状的Gif
4.网页文件部分四行HTML
JS文件,CSS文件以及图片只要复制到同一个目录下面,不需要做任何修改,就可以正常使用了。网页部分的代码如下:
<script type="text/javascript" src="bubbletooltips.js"></script>
<script type="text/javascript">
window.onload=function(){enableTooltips("content")};/*content是div的ID*/
</script>
HTML的代码:
<span class="tooltip">
<span class="top">链接的title</span>
<b class="bottom">链接的URL,最多30个字符</b>
</span>
CSS也非常简单:(代码如下)
.tooltip,.tooltip*{display:block}/*由JS添加*/
.tooltip{width:200px;color:#000;font:lighter 11px/1.3 arial,sans-serif;text-decoration:none;text-align:center}
.tooltip span.top{padding:30px 8px 0;background:url(bt.gif) no-repeat top}
.tooltip b.bottom{padding:3px 8px 15px;color:#548912;background:url(bt.gif) no-repeat bottom}
JS的文件实在是太多行了,我就直接给出文件download .
好了,废话少说,大家自己去ENJOY这其中的乐趣吧!
我给出地址整个实例的下载地址:http://shxy.hrbu.edu.cn/ajax/demo/bubble.rar
需要 URLRewriter.dll,它可以在微软官方下载到:取出Bin里面的文件
接下来配置 Web.Config 文件:
在 <configSections> 节点下添加:
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
在 <configuration> 节点下添加:
<RewriterConfig>
<Rules>
<RewriterRule>
<!--测试-->
<LookFor>~/(\d{2})/(\d{2})\.aspx</LookFor>
<SendTo>~/Default.aspx?m=$1&d=$2</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
在 <httpHandlers> 节点下添加:
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
完成以上步骤即可以实现URL重写的。但是它只能实现 ~/11/11.aspx 到 ~/Default.aspx?m=11&d=11 的重写,如果要实现 ~/11/11.html 到 ~/Default.aspx?m=11&d=11 的重写,那么需要通过设置 IIS 来实现 .html 文件的筛选。(适合 IIS5 IIS6,在 IIS7 中不用这么麻烦,具体见本文末尾的链接,scott 的文章)
进入:Internet 信息管理服务 -》网站属性 -》主目录 -》配置 -》映射 -》添加 -》把扩展名 .html 映射到 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll。
然后在 <httpHandlers> 节点中,把 *.html 也交给 URLRewriter 处理就行了。
OK,试试看,访问 ~/11/11.html 确实是 ~/Default.aspx?m=11&d=11 的内容,可是只要 postback 一下,地址栏又显示实际路径了。只要在你的/app_browsers文件夹里添加一个.browser文件,注册使用一个控件适配类即可输出新的action属性。

你可在这里查看一个我创建的样例实现,其展示了该如何实现与URL重写协作的表单控件适配器(Form Control Adapter) 。
参考:http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx
译文:http://blog.joycode.com/scottgu/archive/2007/03/01/94004.aspx
