Php 我可以从转发的域触发jQuery集cookie吗?

Php 我可以从转发的域触发jQuery集cookie吗?,php,jquery,cookies,Php,Jquery,Cookies,可能有一个多语言网站,通过使用jQuery链接切换HTMLdiv类来翻译该语言,jQuery链接随后设置cookie以保持该语言在整个网站上保持不变 jQuery如下: $(function() { $("a.langSelect").click(function() { var language = $(this).text(); $("div#masterLangauge").removeClass().addClass(language);

可能有一个多语言网站,通过使用jQuery链接切换HTMLdiv类来翻译该语言,jQuery链接随后设置cookie以保持该语言在整个网站上保持不变

jQuery如下:

    $(function() {
    $("a.langSelect").click(function() {
        var language = $(this).text();
        $("div#masterLangauge").removeClass().addClass(language);
        createCookie("language",language);
        return false;
    });

    if (readCookie("language") != null) {
      $("div#masterLangauge").removeClass().addClass(readCookie("language"));

    }
    else
    {
      $("div#masterLangauge").removeClass().addClass("english");
    }

});

function createCookie(name,value,days) {
if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}
链接的HTML格式如下:

<a class="langSelect" href="#">english</a
<a class="langSelect" href="#">deutsch</a>
<a class="langSelect" href="#">chinese</a>
切换的HTML div在下面,默认为英语-如果选择德语,则类将更改为德语

<div id="masterLangauge" class="english">
然后使用CSS,我将使用display:none和display:block隐藏所有其他语言。这在目前效果很好,非常好

我需要知道的是,如果引用/本地化域名转发到站点,我可以触发这个jQuery cookie和函数吗

所以我们有域名example.com,如果我们有域名germanexample.com重定向到example.com,我希望cookie和语言选择是德语,而不是默认的英语。jQuery可以处理转发的域吗?或者有没有一种方法可以使用PHP来创建类似的预期效果

我希望这是清楚的,有意义的,很难解释


提前感谢大家。

如果您在引用的URL中添加一个哈希,然后在引用的域中处理cookie,可能是最简单的方法

因此,在germanexample.com上,您的链接/推荐将是example.comlang=德语 然后在example.com上,您可以检查散列是否存在

var getHashValue = function(key) {
    if (typeof key !== 'string') {
        key = '';
    } else {
        key = key.toLowerCase();
    }

    var keyAndHash = location.hash.toLowerCase().match(new RegExp(key + '=([^&]*)'));
    var value = '';

    if (keyAndHash) {
        value = keyAndHash[1];
    }

    return value;
};

if(getHashValue('lang')){
  //setCookie.... etc etc.
} else {
  // readCookie etc.
}

但必须注意的是,这可能不利于搜索引擎的优化,因为爬虫程序大多不执行javascript,因此德语版的google仍将使用英语访问页面,德语和中文文本。

您可以使用引用者或在重定向服务器上设置自定义HTTP头,并在其他域上使用JS读取此头。