在我的网站上,我有许多外部链接以及内部链接。 我想用javascript或w/e中的某种解决方案检测外部链接并在新选项卡中打开它们,但会在同一选项卡中打开内部链接。 谢谢! =)如何在新标签中打开外部链接
回答
function getXterlinks()
{
var Xterlinks = document.getElementsByTagName('A');
for (var i=0;i<Xterlinks.length;i++)
{
var eachLink = Xterlinks[i];
var regexp_isYourdomain="your-domain.com";
var regexp_ishttp=/(http(.)*:\/\/)/;
if((eachLink.href != null) && (eachLink.href.match(regexp_isYourdomain) == null) && eachLink.href.match(regexp_ishttp)!=null)
{
eachLink.target ="_blank";
}
}
}
请注意,由浏览器决定是否应在新窗口或新选项卡中打开链接。你不能强制一个行为或其他使用html或JavaScript的行为。 – 2010-08-28 21:23:57
@Jan - true,但使用'target =“_ blank”'是做这件事的标准方法。尽管如此,你的评论仍然存在。 – 2010-08-28 21:25:16
工作!谢谢! :D – MKv4 2010-08-28 21:44:28
是啊,jQuery的仍然JavaScript的。如何:
$('a[href^="http://your-domain.com"]').attr("target", "_self");
$('a').not('a[href^="http://your-domain.com"]').attr("target", "_blank");
不知道第二,但你明白了。
我为我的个人网站写了这个解决方案。只要你喜欢jQuery(你应该,imho),你可以将它包含在一个普通的js文件中,然后忘掉它。它将与动态内容一起工作,并且如果您设置target =“_ blank”,则不会强制在当前选项卡中打开内部链接。
$(function() {
$('body').on('click', 'a', function() {
var currentHost = document.location.protocol+'//'+document.location.hostname;
if (this.href.indexOf(currentHost) != 0 && (this.href.indexOf('http') == 0 || this.href.indexOf('ftp') == 0)) {
window.open(this.href, '_blank');
return false;
}
});
});
注:如果您使用jQuery < 7,使用.bind()来代替。对()
看到它在行动上http://www.seanknutson.com。
- 1. 在新标签页中打开链接?
- 2. JavaScript:在新标签中打开链接
- 3. dispform.aspx在新标签中打开链接
- 4. 点击许多新标签打开许多外部链接
- 5. 在外部标签中打开Sharepoint链接
- 6. Javascript在新标签页打开链接
- 7. 在没有jQuery的情况下在新标签页中打开外部链接
- 8. 如何在博主中的新标签中打开链接
- 9. 如何在新层中使用phonegap打开外部链接?
- 10. 如何在新标签中打开链接
- 11. 如何在wordpress的新标签中打开链接?
- 12. 如何限制链接在新标签中只打开一次?
- 13. 如何在Joomla的新标签中打开链接?
- 14. 如何在新标签中打开2个链接?
- 15. Sharepoint链接 - 如何在新标签页/窗口中打开
- 16. 我如何在新标签中打开一个随机链接?
- 17. Unity打开外部链接
- 18. 外部打开链接
- 19. 链接打开标签
- 20. JavaScript的 - 在标签中打开链接
- 21. 在一个标签中打开链接
- 22. 在标签页中打开链接
- 23. 从外部链接打开活动标签
- 24. 谷歌地图标签信息框打开外部链接?
- 25. 使用外部链接打开第二个/第三个标签
- 26. 链接何时应该在新标签页/窗口中打开?
- 27. 链接与目标=“_ blank”未在Chrome的新标签中打开
- 28. 在新标签中打开链接在IE10中不起作用
- 29. html/javascript:隐藏链接目标并在新标签中打开链接
- 30. 捕获“在新标签中打开链接”和“在新窗口中打开链接”事件
您的网站链接是否有一些常见模式 – Hulk 2010-08-28 21:19:21
是的,如果它们都包含“blogspot.com”,则其他所有内容都是外部的。 – MKv4 2010-08-28 21:30:07