解决stately主题cookie无法关闭的问题

黄黄 9月前 874

111

Stately主题后台有一个cookie提醒的功能,启用后发现无法关闭。

运行时浏览器报错Uncaught TypeError: expirationDate.toUTCString is not a function 

我复制对应的JS代码给chatgpt,给出了解决办法。亲测可以解决。希望主题作者下个版本修复一下。

这个错误消息表明expirationDate.toUTCString不是一个函数,这是因为expirationDate在这段代码中被定义为一个数值(Number),而不是一个Date对象。toUTCStringDate对象的一个方法,用于将日期转换为一个字符串。要修正这个错误,需要先将expirationDate转换为一个Date对象。

 

找到主题目录下hook目录里的stately_modal_cookie_notice.htm文件。

找到以下代码:

document.getElementById('cookie_accept').addEventListener('click', function () {  
        var expirationDate = (new Date().getTime()) + 6 * 30 * 24 * 60 * 60 * 1000;  

        document.cookie = 'cookie_policy=accept; expires=' + expirationDate.toUTCString() + '; path=/; domain=<?= $_SERVER["SERVER_NAME"]; ?>';  

        document.getElementById('StatelyCookieDialog').setAttribute('hidden', 'true');  
    });  

修改为:

document.getElementById('cookie_accept').addEventListener('click', function () {
    var expirationTime = new Date().getTime() + 6 * 30 * 24 * 60 * 60 * 1000; // 这是过期时间的毫秒数
    var expirationDate = new Date(expirationTime); // 将毫秒数转换为Date对象

    document.cookie = 'cookie_policy=accept; expires=' + expirationDate.toUTCString() + '; path=/; domain=www.xiuno.org';

    document.getElementById('StatelyCookieDialog').setAttribute('hidden', 'true');
});
最新回复 (1)
  • Geticer 9月前
    0 引用 2
    感谢反馈,将于1.0.25版修复。
返回
发新帖