页面载入中...

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,是属于转向插件的,暂时先不管了。

6条留言. 发言 or Trackback

  • underone  20:23 Nov 07, 2007 

    是。。。什么样的冲突?

  • 北极冰仔  20:27 Nov 07, 2007 

    功能上没有任何影响,只是标准规定一个元素只能定义一个 rel 属性而已。说到底还是个“标准”的问题。^_^

  • loren  17:50 Feb 18, 2009 

    有个问题,文字链的外部链接好识别,但是如果是点击图片,然后跳转到新窗口,这个好像还没有现成的jQuery 用法,网上没有找到

    请问站长是否可以指点一二呢,多谢!

  • 北极冰仔  18:35 Feb 18, 2009 

    @loren 你指的图片仅仅是 img 标签吗?即便这样使用 jQuery 也蛮容易,只要对 img 的 src 属性判断就好了。

  • loren  22:41 Feb 18, 2009 

    对,就是这样的,两边是href,中间引用的是一个img的图片类型,请教一下jQuery里面该如何写这一句

  • 北极冰仔  09:36 Feb 19, 2009 

    @loren 我不清楚你想在新窗口打开的是图片本身?还是加在图片上的超链接,如果是 a 标签的话,文字链与图片链并没有区别。先为外部链接的 a 标签加上 class=”external”,使用 $(‘a.external’).click(function(){window.open(this.href);return false}); 就可以实现新窗口打开了。

留言 ↓

欢迎回来, (修改)

  • :em19:
  • :em01:
  • :em25:
  • :em09:
  • :em11:
  • :em00:
  • :em13:
  • :em08:
  • :em10:
  • :em03:
  • :em02:
  • :em05:
  • :em07:
  • :em16:
  • :em27:
  • :em14:
  • :em21:
  • :em20:
  • :em24:
  • :em18:
  • :em17:
  • :em06:
  • :em23:
  • :em12:
  • :em22:
  • :em15:
  • :em26:
  • :em04:

正在提交数据...