Você deve definir o caminho no qual o cookie existe para garantir que você esteja excluindo o cookie correto.
function set_cookie(name, value) {
document.cookie = name +'='+ value +'; Path=/;';
}
function delete_cookie(name) {
document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
Se você não especificar o caminho, o navegador definirá um cookie em relação à página em que você está atualmente; portanto, se você excluir o cookie enquanto estiver em uma página diferente, o outro cookie continuará existindo.
Edite com base no comentário de @Evan Morrison.
Esteja ciente de que, em alguns casos, para identificar o cookie correto, o Domainparâmetro é necessário.
Geralmente é definido como Domain=.yourdomain.com.
Colocar um ponto na frente do seu nome de domínio significa que esse cookie pode existir em qualquer subdomínio ( wwwtambém conta como subdomínio).
Além disso, como mencionado na resposta de @ RobertT, os HttpOnlycookies não podem ser excluídos com JavaScript no lado do cliente.
name? Qual o sentido disso? Ou é uma ressaca de uma versão mais versátil que permite especificar o nome do cookie?