如果用户不在指定域上,则打开窗口

时间:2013-04-30 10:39:27

标签: javascript popup

我目前正在使用此JavaScript弹出式确认重定向:

var answer = confirm("If you are joining us through site other than" +
  "website.net, .com or .info please hit OK otherwise hit cancel!");

if(answer)
    window.open('http://website.net', '_blank');
else
    alert("You need to know that it will not work for you well if you don't")

如果用户不在目标网页上,我真的想要一种方法来使用此弹出窗口。

2 个答案:

答案 0 :(得分:1)

目前还不清楚你想要实现的目标,但你可以使用以下方式获取“推荐人”:

document.referrer

它将告诉您用户来自哪里。我的建议基于你的引用:

  

如果您通过aseanlegacy.net以外的网站加入我们...

我绝对不知道为什么这会很重要,为什么你告诉用户网站不会很好用。

如果您想获取当前位置,只需使用:

document.location.href

返回完整的网址,或

document.location.hostname

返回主机名。

答案 1 :(得分:1)

我认为这就是你要做的事情:

var domains = ["aseanlegacy.net", "aseanlegacy.com", "aseanlegacy.info"];

if(domains.indexOf(document.location.hostname) == -1)
    window.open("http://aseanlegacy.net", "_blank");

如果用户所在的域不在domains(使用document.location.hostname进行测试),则会调用window.open

这是JSFiddle


根据您的要求,每次会话只打开一次窗口,这里修改的代码包含一个cookie:

var domains = ["aseanlegacy.net", "aseanlegacy.com", "aseanlegacy.info"];

if(domains.indexOf(document.location.hostname) == -1 && document.cookie.indexOf("opened=1") == -1)
{
    document.cookie = "opened=1";
    window.open("http://aseanlegacy.net", "_blank");
}

这是updated JSFiddle