如何在使用window.open时保持当前页面

时间:2013-03-08 17:14:39

标签: javascript jquery

我正在解雇Window.open();命令。这将在另一个选项卡中打开链接页面。我想要的是当我点击链接时,链接将在新窗口中打开,但应该在同一页面上。

这可能吗?

目前我正在使用这样的。

function AddToDatabase(url) {
            window.open(url, "_blank");
}

6 个答案:

答案 0 :(得分:12)

使用_self而不是_blank。

window.open(url, "_self");
  1. _blank - 将URL加载到新窗口中。这是默认的
  2. _parent - 将URL加载到父框架
  3. _self - URL替换当前页面
  4. _top - URL替换任何可能加载的框架集名称 - 窗口名称
  5. 了解更多详情。见This Link

答案 1 :(得分:2)

您拥有的代码不应该更改页面。你怎么称AddToDatabase()?它来自a href标签吗?如果是这样,则默认操作是从链接发生的,您需要阻止它。

您可以将href属性设置为javascript:void(0)

<a href="javascript:void(0)" onclick="AddToDatabase('myUrl')">Add URL</a>

或者您可以拥有onclick属性return false

<a href="#" onclick="AddToDatabase('myUrl'); return false;">Add URL</a>

答案 2 :(得分:2)

你可以使用它。

 <a href="terms.html" onclick="window.open(this.href, 'targetWindow', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=400,height=600');return false;" />Terms & Conditions</a>

它的作品对我来说

答案 3 :(得分:1)

我知道这个问题已经过时了,但它完美地描述了我需要回答的问题,并且我能够提出一个不错的解决方案,所以我想我会在这里发布。这是一个有趣的解决方法。

基本上,您设置超时以延迟将当前页面转发到新网址,然后在新选项卡中打开当前网址。所以:

function open_hidden_tab(new_url) {
    var thisTimeout= setTimeout(function() {
        window.location.href= new_url;
    }, 500);
    var newWindow= window.open(window.location.href);
    if(!newWindow) {
        clearTimeout(thisTimeout);
        alert('Please allow pop-ups on this site!');
    }
}
open_hidden_tab('https://google.com');

显然,您应该在您的网站上显示某种错误消息,而不是使用烦人的提醒功能,但它适用于此示例。

希望这有助于某人!

答案 4 :(得分:0)

以下是pop-under的示例:

var url = "example.com";
window.open(url, "s", "resizable=yes, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, copyhistory=no").blur();
window.focus();

如果这就是你要找的东西,那就去坚持吧。从网络开发的角度来看,这是非常不道德的,但它可以做到。

答案 5 :(得分:0)

<html>
<body>

<script>
myWindow=window.open('','','width=200,height=100')
myWindow.document.write("<p>This is 'myWindow'</p>")
myWindow.focus()
</script>

</body>
</html>

您应该确定窗口的宽度和高度。

请看这个演示:http://jsfiddle.net/XyJW5/但不要忘记在浏览器中为此网站添加弹出窗口