我用HTML,PHP和JS编写购物车。我有一个onclick
功能删除cookie并刷新页面,从购物车中删除该项目。这适用于Chrome,Cookie已删除。我在Firefox中使用相同的代码,但它不起作用:在Firefox中没有删除cookie。这是具有onclick
属性的元素:
echo '<button class="button" onclick="removeCart' . $x . '()">Remove from Cart</button>';
这里的功能是:
echo '<script>';
echo 'function removeCart' . $x . '() {';
echo 'document.cookie = "' . $itemsSpaced[$x] . '= ; expires=Thu, 01 Jan 1970 00:00:00 UTC";';
echo ' location.reload(true);';
echo '}';
echo '</script>';
为什么这适用于Chrome,而不适用于Firefox?
答案 0 :(得分:1)
您应该确保在删除Cookie时添加相同的path
和domain
属性(如果您指定了其中任何一个)。这是因为这两个属性决定了cookie的可访问性。
例如,您可以使用两个具有相同名称但使用不同路径链接的Cookie。如果不指定路径,删除哪一个是不明确的。显然,Firefox比Chrome更好。如果没有路径规范,则不应删除cookie。
所以您应该将代码更改为:
echo 'document.cookie = "' . $itemsSpaced[$x] . '= ; path=/cart; expires=Thu, 01 Jan 1970 00:00:00 UTC";';