我有一个有相当几个链接的页面,目前的链接是target=“空白”,所以如果有人意外地点击了一个链接,他们不会破坏他们在我的页面上所做的事情。然而,我不喜欢做_target=“空白”(我总是认为用户告诉他们如何打开链接是一种恩惠)。
所以我想我应该让用户选择关闭“在新窗口/选项卡中打开”。目前,我正在PHP中这样做:
<?php if($newWindow){ echo '_blank'; } ?>但是,如果可能的话,我更愿意在JavaScript中这样做(仅仅为了更改几个字符串就重新加载整个页面似乎很傻)。我该怎么做?我在更改输入字段等方面发现了很多,但没有找到链接属性。
哦,如果可能的话,也不要在jQuery里。如果可以使用CSS,那将是很酷的,但我假设它还没有走那么远。
发布于 2014-05-09 14:14:38
在页面的某个位置(应该是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>联署材料:
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);
}
}演示:http://jsfiddle.net/qY7sh/1/
发布于 2014-05-09 14:03:30
尝试:
document.getElementById("[anchor id]").target = "_blank";假设您的“href”有一个ID,这应该是可行的。
https://stackoverflow.com/questions/23566540
复制相似问题