2006年12月7日星期四

blogger:使 Link List 中的链接在新窗口中打开

不知你有没有注意,在 Blogger Beta 中文章或侧栏里所有的超级链接都是在当前窗口中转换的,比较敏感的问题是这会带走你的流量,让读者在你站点上停留的时间大大缩短,如果都能让他们自动在新窗口中打开岂不是更好,其实掌握一点HTML语法知识的话,这个问题就非常容易解决。

我们先来更改侧栏中的链接列表。首先登陆你的帐户,进入模板代码编辑界面,(注意:在做出任何改动前一定要记住先做好备份。此注意事项适用于本站所有的文章。) 然后在 "Expand Widget Templates" 前勾选,将文件展开。之后你可以把所有代码统统拷贝粘贴到你常用的文本编辑工具中再进行操作,这样做可以方便你接下来的修改工作,也许能达到事半功倍的效果。接下来找到以下一段代码,将红色的部分 target='_blank' 添加到编码中,保存更新就完成了。

<b:widget id='LinkList1' locked='false' title='' type='LinkList'>
<b:includable id='main'>

<b:if cond='data:title'><h2><data:title/></h2></b:if>
<div class='widget-content'>
<ul>
<div id='link'>
<b:loop values='data:links' var='link'>
<li><a expr:href='data:link.target' target='_blank'><data:link.name/></a></li>
</b:loop>
</div>
</ul>
<b:include name='quickedit'/>
</div>
</b:includable>
</b:widget>

至于在文章中的超级链接,我们只要平时注意在撰写文章时添加链接之后手动的增加 target="_blank" 这段代码就可以了,比如:
<a href="http://bhic.blogspot.com/" target="_blank">博之道。</a>

Update:
刚刚想到一个问题,原来在HTML4.01/XHTML1.0/XHTML1.1严格DOCTYPE下,target="_blank"、target="_self" 语法都是 无效的,也就是说当我们使用严格的DOCTYPE(xhtml1-strict.dtd)时,这个语法将通不过W3C的校验,会出现如下错误提示:

"there is no attribute target for this element(in this HTML version)"

虽然暂时它还不会对你的使用产生明显的影响,但为了确保我们网站的文挡都能够长期有效,还是应该尽量遵循规则。而且,Blogger Beta 也是一直采用严格的DOCTYPE声名的,如果你打开网站的源代码,在第一行的位置就可以看到:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 。具体的解决的办法就是使用一个新的属性:rel,这个属性用来说明链接和包含此链接页面的关系,以及链接打开的目标。rel有许多的属性值,比如next、previous,、chapter、section等等。我们要使用的就是 rel="external" 属性。这里将上文中提到的 target="_blank" 全部替换成 rel="external" 就可以了。

希望上文对你有所帮助,如有任何疑问可留言告知,我会尽快给予回复。

3 评论:

Wei 说...

target="_blank"不符合W3C标准。我链的Live space时就不可以在新窗口中打开了,晕。

GG 说...

99%是你浏览器问题,火狐的一些插件如标签栏插件可以屏蔽blank协议。但是火狐默认是识别blank协议的。

其他浏览器opera ,ie6 ,ie7也同样支持。

所以这里的w3c标准实际上是个屁!

匿名 说...

将Google Reader添加到侧边栏后,这个方法似乎没有用啊

发表评论: ☆欢迎灌水☆言论自由☆交流快乐☆