Ваш заголовок и текст, кажется, устанавливают два разных требования:
- cookie должны оставаться в силе, пока браузер не закроется, а затем исчезнет
- cookie должны оставаться в силе, пока браузер не закроется, затем оставаться в силе еще час, а затем исчезнуть
1) будет работать, если вы вообще не установили значение «expires» для cookie:
// Set cookie until browser is closed
document.cookie = c_name + "=" + value;
2) будет работать, если вы позволите функции setCookie запускаться повторно, пока страница открыта, скажем каждую минуту:
// Set cookie every minute
var value = ...;
window.setInterval(function () {
setCookie(value);
}, 60 * 1000);
Когда браузер закрыт, cookie никогда не будет старше 1 минуты и, следовательно, будет действовать еще один час.