因此,在尝试设置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代码即时使用:
$patterns = array("/.jpg/", "/.jpeg/", "/.png/");
if (isset($_COOKIE['webpsupport']) && $_COOKIE['webpsupport'] == "yes")
$thePostThumbUrl = preg_replace($patterns, "_result.webp", $thePostThumbUrl);
所以问题是如果我首先加载chrome它会显示.webp图像。
控制台消息为webp support
现在,如果我在边缘加载网站,则会显示webp iamges。
控制台消息为webp no support
现在为了奇怪的部分。 如果我反转过程,那么清除网站上的缓存然后加载边缘显示原始.jpg扩展。但是,如果我在Chrome中加载网站,则还会显示图像的.jpg版本。
这个令我困惑,似乎很直接。
同样在边缘调试器中,我可以确认cookie不存在。那么PHP代码如何运行@。@
任何人遇到过这样的事情。
更新如果我使用此代码,它会回答是:
if (isset($_COOKIE['webpsupport'])) echo $_COOKIE['webpsupport'];
还更改了Cookie名称webpsupport
到webpsupported
只是出现了某种情况 缓存问题。但它仍然是一样的。