找回密码
 注册
广告投放 虚位以待【阿里云】2核2G云新老同享 99元/年,续费同价做网站就用糖果主机-sugarhosts.comJtti.com-新加坡服务器,美国服务器,香港服务器
查看: 684|回复: 0

使用 jQuery 在新窗口打开外部链接

[复制链接]
发表于 2010 年 10 月 2 日 22:11:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×

我们一般都希望在新窗口打开外部链接,这样用户就不需要离开网站就能访问外部链接,但是假设每个外部链接都手工加上新窗口打开的属性的话,这会让人非常抓狂,并且 target="_blank" 也不符合 XHTML 1.0 Strict 标准。

还有有了 jQuery,使用 jQuery,我们只需要几行代码就能在新窗口中打开外部链接。

首先我们需要找到所有的外部链接,在$(document).ready()函数添加如下代码:

  1. $("a[href*='http://']:not([href*='"+location.hostname+"']),[href*='https://']:not([href*='"+location.hostname+"'])");
复制代码

上面这段代码查找 href 属性是以 http:// 或者 https:// 开始的,并且不包含当前域名(location.hostname)的链接(a)标签。这样我们就不会获取任何相对路径或者绝对连接中含有当前域名的内部连接。

假设我们想给外部链接加上 “external” class,添加如下的代码:

  1. $("a[href*='http://']:not([href*='"+location.hostname+"']),[href*='https://']:not([href*='"+location.hostname+"'])").addClass("external");
复制代码

上面的代码给外部链接加上一个 CSS Class ,这样就可以使用 CSS 来样式化外部链接了。

假设你想外部链接在新窗口打开,继续增加如下一行代码:

  1. $("a[href*='http://']:not([href*='"+location.hostname+"']),[href*='https://']:not([href*='"+location.hostname+"'])").addClass("external").attr("target","_blank");
复制代码

上面的代码给链接标签增加一个 target 属性,并且给他赋值为 _blank,这样代码是标准的,并且外部链接在新窗口打开。上面就是使用 jQuery 在新窗口打开外部链接的所有代码。



Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|金光论坛

GMT+8, 2025 年 2 月 3 日 10:02 , Processed in 0.034194 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表