我有一个包含相当多链接的页面,目前的链接是目标="空白"因此,如果有人不小心点击了一个,他们就会破坏他们在我的页面上所做的事情。但是,我不喜欢做_target ="空白" (我一直认为,用户可以告诉他们如何打开链接......)。
所以我想我可以让用户选择在新窗口/标签页中打开'关闭。目前我在PHP中这样做:
<?php if($newWindow){ echo '_blank'; } ?>
但是如果可能的话,我宁愿在JavaScript中这样做(看起来很难重新加载整个页面只是为了改变一些字符串)。我该怎么办?我发现很多关于更改输入字段等的内容,但没有找到链接属性..
哦,如果可能的话,不在jQuery中。如果可以使用很酷的CSS,但我认为它还没那么远......
答案 0 :(得分:1)
您网页上的某个位置(应为true
/ false
):
var newWindow = <?=$newWindow;?>
然后做(jQuery,只是概念):
$('a').bind('click', function(event){
if(newWindow){
event.preventDefault();
window.open($(this).attr('href'));
}
});
有几种方法可以做到这一点,但首先想到的是这个。这显然要求您也处理相关链接 - 所以请记住这一点。
编辑:由于@durbnpoisn给了我greif,这里有代码准备好你放入你的网站:
链接:
<a id="toggle-new-tab">Turn on/off new window</a>
JS:
var newWindow = false;
document.getElementById('toggle-new-tab').onclick = function(){
newWindow = !newWindow;
}
var links = document.getElementsByTagName('a');
for(var i = 0; i < links.length; i++){
if(links[i].href !== '')
links[i].onclick = newWindowHandler;
}
function newWindowHandler(event){
if(newWindow){
event.preventDefault();
window.open(event.target.href);
}
}
答案 1 :(得分:0)
尝试:
document.getElementById("[anchor id]").target = "_blank";
这应该有效,假设你的“a href”有一个ID。