Javascript 基于自定义函数引用URL的结果触发函数

Javascript 基于自定义函数引用URL的结果触发函数,javascript,jquery,url,Javascript,Jquery,Url,如果函数的结果为true,并且引用的URL不属于域,则需要使用JavaScript(jQuery,如果适用)触发模式调用 用户希望访问主启动页,只要他们没有被站点本身重定向到主启动页(通过会话超时、无效登录凭据等),它就会显示消息,以便: function showModalIf() { if (checkFunction) { if(////// REFERRING URL not from this site) Trigger Modal Ca

如果函数的结果为true,并且引用的URL不属于域,则需要使用JavaScript(jQuery,如果适用)触发模式调用

用户希望访问主启动页,只要他们没有被站点本身重定向到主启动页(通过会话超时、无效登录凭据等),它就会显示消息,以便:

function showModalIf() {
    if (checkFunction) {
        if(////// REFERRING URL not from this site)
            Trigger Modal Call
        else
           Don't Do anything else
    }
}

如果您在代码中谈论的是强制重定向,而不仅仅是站点中其他位置的超链接单击,那么您可以在重定向上添加查询字符串参数并进行检查。另一个选项是设置cookie并在javascript中检查cookie

下面是一个关于Javascript中cookie处理的链接:

还有一个用于在Javascript中解析查询字符串参数/哈希:


希望这为您指明了正确的方向:)

假设您使用jQueryUI对话框来显示模式

function checkReferrerExternal() {
    if (!document.referrer || document.referrer == '') return false;
    var regex = /^https?:\/\/\/?([^?:\/\s]+).*/;

    var referrermatch = regex.exec(document.referrer);
    var locationmatch = regex.exec(document.location);
    return referrermatch[1] != locationmatch[1];
}


function showModalIf() {
    if (checkReferrerExternal()) {
        //show jQuery UI Dialog modal or replace with whatever
        $("div#dialog").dialog('open');
    }
}

查看演示页面

我不想通过Cookies进行操作,因为我们的很多用户都会定期清除这些内容,我也不想使用查询字符串,而是只需检查引用站点的主机名,看看它是否与站点主机名匹配,然后不显示模式,如果它与显示模式不同,请说明(或可能)?我之前没有意识到这一点,但看起来您可以通过document.referer在Javascript中获取referer属性,尽管我不确定是否所有浏览器都支持该调用。