首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用_target=动态将“空白”更改为“_target=”“self”

使用_target=动态将“空白”更改为“_target=”“self”
EN

Stack Overflow用户
提问于 2014-05-09 13:59:17
回答 2查看 2.8K关注 0票数 0

我有一个有相当几个链接的页面,目前的链接是target=“空白”,所以如果有人意外地点击了一个链接,他们不会破坏他们在我的页面上所做的事情。然而,我不喜欢做_target=“空白”(我总是认为用户告诉他们如何打开链接是一种恩惠)。

所以我想我应该让用户选择关闭“在新窗口/选项卡中打开”。目前,我正在PHP中这样做:

代码语言:javascript
复制
<?php if($newWindow){ echo '_blank'; } ?>

但是,如果可能的话,我更愿意在JavaScript中这样做(仅仅为了更改几个字符串就重新加载整个页面似乎很傻)。我该怎么做?我在更改输入字段等方面发现了很多,但没有找到链接属性。

哦,如果可能的话,也不要在jQuery里。如果可以使用CSS,那将是很酷的,但我假设它还没有走那么远。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-09 14:14:38

在页面的某个位置(应该是true/false):

代码语言:javascript
复制
var newWindow = <?=$newWindow;?>

然后做(jQuery,虽然只是概念):

代码语言:javascript
复制
$('a').bind('click', function(event){
    if(newWindow){
        event.preventDefault();
        window.open($(this).attr('href'));
    }
});

做这件事有几种方法,但首先想到的是这个。这显然要求您也处理相对链接-所以请记住这一点。

编辑:由于@durbnpoisn给了我greif,下面的代码可以让您进入您的站点:

链接:

代码语言:javascript
复制
<a id="toggle-new-tab">Turn on/off new window</a>

联署材料:

代码语言:javascript
复制
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/

票数 1
EN

Stack Overflow用户

发布于 2014-05-09 14:03:30

尝试:

代码语言:javascript
复制
document.getElementById("[anchor id]").target = "_blank";

假设您的“href”有一个ID,这应该是可行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23566540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档