0
<!DOCTYPE html>
<html>
<head>
<title> Untitled </title>
<script type="text/javascript">


function OpenWindow(info) {
    if
    {
  window.open(info,'WinName','height=400,width=600,resizable=yes,scrollbars=yes');
    }
    else
    {
    target="_self";
    }
}
</script>
</head>
<body>
<p>
<input type="checkbox" name="CBox0" value="www.youtube.com" > Click To Open Link in New Window!</p>

<br>

<a href="http://www.youtube.com" target="new" id="y"onclick="if(this.checked){OpenWindow(this.value)}">Youtube</a>

</body>
</html>

这就是我到目前为止所拥有的。选中复选框后,如果我单击链接,它将在新选项卡中打开网站。但如果未选中,它会像常规链接一样在同一页面上打开。我已经为此工作了一段时间,因此将不胜感激任何帮助。谢谢!

4

3 回答 3

0

你有一些我已经删除的标记问题和内联内容。这应该为你做:http: //jsfiddle.net/L47NY/7/

<input id="checky" type="checkbox">Click To Open Link in New Window</input>
<br />
<a href="http://www.youtube.com" id="linky">Youtube</a>

var checky = document.getElementById('checky');
var anchor = document.getElementById('linky');
var link = anchor.getAttribute('href');

function OpenWindow(href) {
    if (checky.checked) {
        window.open(href, '_blank');
    } else {
        window.open(href, '_self');
    }
}
anchor.onclick = function () {
    OpenWindow(link);
    return false;
};
于 2013-10-18T00:43:53.093 回答
0

您实际上并没有告诉我们您遇到的错误。

在任何情况下,如果您希望单击继续,您的 onclick 语句应该返回 true(行为因浏览器而异,但如果您不返回 true,我知道 firefox 不会打开链接)。

另外 - 当您说 时,您正在检查 ANCHOR 标签是否已“检查” this.checked

于 2013-10-18T00:49:40.083 回答
0

这是一个使用 jquery的简单示例

$('#aLink').attr('target','_blank');

$('#chk').click(function(){
  if($(this).is(':checked')){
    $('#aLink').attr('target','_self');    
  }else{
    $('#aLink').attr('target','_blank');
  }
});

您唯一需要做的就是在选中或未选中复选框时设置目标属性。

于 2013-10-18T00:56:23.153 回答