账号通
    

账号  

密码  

2186

查看

2

回复
主题:■■■JS讨论■■修改JS■■高手帮忙■■新手帮顶■■ [收藏主题]  
孤风大虾 当前离线

1700

主题

7

广播

118

粉丝
添加关注
级别:高一年

用户积分:10218 分
登录次数:451 次
注册时间:2006/3/28
最后登录:2022/3/10
孤风大虾 发表于:2008/10/18 12:21:00   | 只看该作者 查看该作者主题 楼主 
科汛在线网校系统

因为网站中肯定会出现很多站外链接,而我们一处一处的去设置在新窗口打开绝对是非常累人的事情。因此,我希望通过一段JS来实现这个问题。功夫不负有心人,我找到了。


 


==============================


// 说明:在 XHTML-Strict 模式下实现新窗口打开外部链接
// 作者:CodeBit.cn
// 链接:http://www.codebit.cn


function setExternalLinkTarget()
{
 // 从当前 url 中解析主机名
 var locationMatch = document.location.href.match(/^(http:\/\/)?([^\/]+)/i);


 // 设置站点链接
 var siteUrl = locationMatch[2];


 // 获取页面上所有链接
 var allLinks = document.getElementsByTagName('a');
 var len = allLinks.length;


 if(len > 0)
 {
  var externalLink;
  for(i=0; i<len; i++)
  {
   // 设置当前链接
   externalLink = allLinks[i];


   // 如果链接 href 里面没有发现站点链接(外部链接)
   if (externalLink.href.indexOf(siteUrl) == -1)
   {
    // 设置 target 属性
    externalLink.setAttribute('target', '_blank');
   }
  }
 }
}


window.onload = function() {
 setExternalLinkTarget();
}


 


==================================


 


如上,只要调用这段JS,则,无论网站在哪里出现的站外链接都会在新窗口打开。无论哪里。


 


==================================


 


问题出现了,我有一个地方的链接不想在新窗口打开。什么呢?就是添加网摘。大家知道网摘很常用,也很能带来流量。因此啊,我建议大家都使用这个网摘。可问题出现了。如果使用了上面这一段JS,则会出现网摘读取在新窗口打开的内容则出现乱码。具体过程,大家可以自己试验一下。


 


找到了问题原因,下面就是寻找解决问题的方法。能否则上面这个JS中再增加一个判断值,比如IDwangzhaidiv内的链接不在新窗口打开。我相信这个事情不是多困难。希望高手指点一下。


 


如果你不会,请帮忙顶一下,这个问题得到解决,对我们的帮助是很大很大的。

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
mz520 当前离线

628

主题

6

广播

2

粉丝
添加关注
级别:六年级

用户积分:3600 分
登录次数:170 次
注册时间:2008/8/23
最后登录:2014/8/5
mz520 发表于:2008/10/18 17:25:00   | 只看该作者 查看该作者主题 沙发 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
孤风大虾 当前离线

1700

主题

7

广播

118

粉丝
添加关注
级别:高一年

用户积分:10218 分
登录次数:451 次
注册时间:2006/3/28
最后登录:2022/3/10
孤风大虾 发表于:2008/10/18 16:04:00   | 只看该作者 查看该作者主题 藤椅 
科汛在线考试系统(NET)
帮忙顶一下啊各位兄弟!~上回找人解决一个问题连一个顶的都没有,这次我在标题里都说帮我顶一下了啊,我不信科讯一个高手都没有呀~~~~
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.13281秒 powered by KesionCMS 9.0