November 7, 2007
jQuery 之 没有 ‘target’ 属性照样打开新窗口(再续)
在之前的(续)中,我借助插件为外部链接加上了 rel=”external” 这个标签,然后再通过 jQuery 为其添加 class=”external”,忘了当初为什么要这样做了(我确定是有理由的),事后发现在每篇日志的留言部分,rel=”external” 会与 WP 自动为链接加上的 rel=”nofollow” 标签发生冲突,因为同一元素不允许同时存在两个 rel 标签。
想了几种办法:插件处理 DOM 不太现实、用正则表达式判断是否有 rel=”nofollow”,如有,将其改为 rel=”nofollow external” 过于复杂会影响效率、修改 WP 默认添加 rel=”nofollow” 的方式等等,都不合适。
没办法,还是往简单了改吧,直接让插件给外部链接添加 class=”external” 不就结了,相应的 jQuery 也做了修改,CSS 不变,效果不变。目前还有点小 bug,是属于转向插件的,暂时先不管了。

是。。。什么样的冲突?
功能上没有任何影响,只是标准规定一个元素只能定义一个 rel 属性而已。说到底还是个“标准”的问题。^_^
有个问题,文字链的外部链接好识别,但是如果是点击图片,然后跳转到新窗口,这个好像还没有现成的jQuery 用法,网上没有找到
请问站长是否可以指点一二呢,多谢!
@loren 你指的图片仅仅是 img 标签吗?即便这样使用 jQuery 也蛮容易,只要对 img 的 src 属性判断就好了。
对,就是这样的,两边是href,中间引用的是一个img的图片类型,请教一下jQuery里面该如何写这一句
@loren 我不清楚你想在新窗口打开的是图片本身?还是加在图片上的超链接,如果是 a 标签的话,文字链与图片链并没有区别。先为外部链接的 a 标签加上 class=”external”,使用 $(‘a.external’).click(function(){window.open(this.href);return false}); 就可以实现新窗口打开了。