在没有用户事件

时间:2015-04-25 15:32:09

标签: javascript jquery asp.net-mvc

这里我有两个asp.net mvc网站。从第一个网站我有一个链接到第二个网站。因此,第一个网站将调用第二个动作。我想在新标签页面上打开,当前标签应该重定向到我的第一个网站。此操作将返回一个视图。

我在视野中的方法

1

$(document).ready(function (e) {
    window.open("/newpage");
    window.open("/site1", "_self"); 
});

浏览器弹出窗口拦截器会阻止此操作。因为没有用户事件。所以我尝试了不同的方法

2

$(document).ready(function (e) {   
    $("#input").on("click", function () {
        window.open("/newpage");
        window.open("/site1", "_self");
    });
    $("#input").trigger("click");
});

<label id="input" style="display:none;">test one</label>

我已经触发了一个事件。但它仍然受阻。如果禁用弹出窗口阻止程序,这两种方法可以正常工作。 我想在新选项卡中打开页面而不禁用弹出窗口阻止程序。

注意:这两个网站的域名相同。例如:abc.com \ siteone和abc.com \ sitetwo

1 个答案:

答案 0 :(得分:0)

  

从第一个网站我有一个链接到第二个网站。因此,第一个网站将调用第二个动作。我想在新标签页面上打开,当前标签应重定向到我的第一个网站。

我执行此操作的方式是一次或两次,我有一个非常好的用例是使用带有单击处理程序的link元素:单击处理程序打开新窗口,链接元素&# 39;默认操作在链接之后,将现有窗口带到新位置。这样, 是用户启动的操作。这适用于我尝试过的每一个浏览器。我应该注意到它们在jsFiddle或jsBin之类的东西上工作,因为它们如何包装东西。

因此,在您的情况下,链接的href将是您希望他们在第一个网站上的位置,window.open将用于第二个网站。

示例:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Double</title>
<style>
body {
  font-family: sans-serif;
}
</style>
</head>
<body>
<a href="http://stackoverflow.com">Click me</a>
<script>
document.querySelector("a").addEventListener(
    "click",
    function() {
        window.open("http://google.com");
    },
    false
);
</script>
</body>
</html>