有人可以帮我解决这个问题。
当它们位于_blank中的外部域时,需要打开所有链接。但是必须在同一个窗口中打开同一域中的链接。我有问题,因为我在2个域中工作一个是https://www而其他只是http://没有www,如何在没有www的链接上的相同窗口中打开链接?
function externalLinks() {
var h = window.location.host;
jQuery("a[href^='http']").not("[href*='" + h + "']").not(".forceSameWindow").attr('target', '_blank');
}
现在所有链接都以空白示例https://www.something.com
开头http://something.com我必须在jquery / js中这样做。我通过做硬编码域来做到这一点,但做得很好!
感谢您的帮助!
答案 0 :(得分:2)
只需更改
var h = window.location.host;
到
var h = window.location.host.replace(/^www/,'');
如果您在www
主持人身上,那么无关紧要
答案 1 :(得分:0)
你必须强制apache添加www。
将其添加到您的.htaccess
文件中:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.your_domain.com$
RewriteRule ^(.*)$ http://www.your_domain.com/$1 [R=301]
答案 2 :(得分:0)
var externalLinks = function(){
var anchors = document.getElementsByTagName('a');
var length = anchors.length;
for(var i=0; i<length;i++){
var href = anchor[i].href;
if(href.indexOf('http://h4kr.com/') || href.indexOf('http://www.h4kr.com/')){
return;
}
else{
anchor[i].target='_blank';
}
}
};
这应该有效:)
答案 3 :(得分:0)
这是基于您的原始帖子
$("a").each(function($a){
$a=$(this);
if(!~this.href.indexOf(document.location.host)||!$a.hasClass('forceSameWindow')){
$a.attr('target','_blank');
}
})
假设所有链接最初都未设置为_blank