因此,我在尝试设置Cookie时收到了一些奇怪的结果。Cookie似乎穿越了浏览器
我需要设置一个cookie,以便我可以在php中进行一些处理。
下面是代码设置cookie(位于头):
/*
* Check webp support
*/
Modernizr.on('webp', function (result) {
if (result) {
deleteCookie('webpsupport');
setCookie("webpsupport", "yes", "365");
console.log("webp support");
}
else {
deleteCookie('webpsupport');
console.log("webp no support");
}
});
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
var deleteCookie = function(name) {
document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
};
Noew使用PHP代码IM:
$patterns = array("/.jpg/", "/.jpeg/", "/.png/");
if (isset($_COOKIE['webpsupport']) && $_COOKIE['webpsupport'] == "yes")
$thePostThumbUrl = preg_replace($patterns, "_result.webp", $thePostThumbUrl);
所以,问题是,如果我首先将它加载铬显示.webp图像。 控制台消息是webp support
现在,如果我加载网站边缘webp iamges显示。 控制台消息是webp no support
现在为奇怪的部分。 如果我逆转这个过程,那么请清除网站上的缓存,然后加载边缘显示的原始.jpg扩展名。但是,如果我然后以铬形式加载网站,则也会显示图像的.jpg版本。
这个让我感到莫名其妙,看起来挺直的。
另外在边缘调试器中,我可以确认cookie不存在。那么PHP代码如何运行@。@
任何人都遇到类似这样的事情。
UPDATE如果我用这个代码,它回声出来是:
if (isset($_COOKIE['webpsupport'])) echo $_COOKIE['webpsupport'];
同样来自webpsupport
更改cookie的名称来webpsupported
只是柜面有某种 缓存问题。但它仍然是一样的。
嗯,但它的发生莫名其妙。 –