2016-11-26 76 views
-1

我正在用HTML,PHP和JS编码购物车。我有一个onclick函数,它删除一个cookie并刷新页面,该页面从购物车中删除该项目。这适用于Chrome,并且Cookie被删除。我在Firefox中拥有相同的代码,但它不起作用:在Firefox中不会删除Cookie。下面是与onclick属性的元素:Cookie在Chrome中删除,但不是Firefox?

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

你是如何设置cookie? – trincot

+0

我将cookie设置在不同的页面上,并将其写入JavaScript:'document.cookie = i +“”+ item +“=”+ price +“; path =/cart”' –

+1

您是否尝试添加'; 'removeCart'中的路径=/cart'? – trincot

回答

1

您应该确保在删除Cookie时添加相同的pathdomain属性(如果您指定了这些属性中的任何一个)。这是因为这两个属性决定了Cookie的可访问性。

例如,您可以拥有两个具有相同名称的Cookie,但链接的路径不同。如果你不指定路径,那么删除哪一个是不明确的。显然Firefox比Chrome更好地处理这个问题。没有路径规范的情况下,不应删除cookie。

所以你应该更改您的代码:

echo 'document.cookie = "' . $itemsSpaced[$x] . '= ; path=/cart; expires=Thu, 01 Jan 1970 00:00:00 UTC";'; 
相关问题