2016-11-26 138 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";'; 
相關問題