2016-06-14 5 views
5

Я вставляю и удаляю div на основе значения cookie. значение cookie обновляется путем проверки и отмены флажка. это отлично подходит для одной вкладки. , но как обновить div на другой вкладке, если также открыты несколько вкладок для одной страницы. Значение cookie обновляется, поскольку оно остается таким же для браузера, но как добавлять или удалять div в отношении значения cookie.Обновление значения элемента div на основе cookie в нескольких вкладках

+0

Престола [ 'PostMessage()'] (https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) –

+0

Пожалуйста, пост примера кода –

+0

слишком большой код для сообщения – Pratyush

ответ

3

Я понял способ, который работал для меня, я использовал переменную с глобальной областью для хранения значения cookie. определил метод проверки того, не является ли значение cookie не таким, как переменная, обновить страницу.

Но если вам не нужно обновлять текущее обновление страницы, значение переменной при каждом обновлении файла cookie.

Так что в основном я обновляю другие вкладки, но не текущую вкладку. Я знаю, что это не лучший способ сделать это, но он выполнит эту работу.

Если вы найдете что-то более эффективное, пожалуйста, отправьте сообщение.

1

Если вы используете локальное хранилище вместо файла cookie, вы можете использовать событие storage, которое запускается при внесении изменений в локальное хранилище.

См. http://synccheckbox.site44.com/ для примера. Код вставил ниже:

<!doctype html> 
<html> 
<head> 
    <style>html { font-family:Arial }</style> 
</head> 
<body> 
    This checkbox should synchronize between open tabs: 
    <input type="checkbox" id="checkbox" /> 

    <script> 
     function updateCheckbox() { 
      document.getElementById('checkbox').checked = 
       (localStorage.checked === 'true'); 
     } 
     updateCheckbox(); 

     document.getElementById('checkbox').addEventListener('change', function() { 
      localStorage.checked = this.checked; 
     }); 

     window.addEventListener('storage', function() { 
      updateCheckbox(); 
     }); 
    </script> 
</body> 
</html> 
+0

мы можем использовать локальное хранилище в php? – Pratyush

+0

Я не уверен, что вы имеете в виду. Локальное хранилище - это функция браузера ... доступ к нему возможен только в браузере. – smarx

+0

Я думаю, что @Pratyush хочет манипулировать значениями, взятыми из локального хранилища, в некоторые php-переменные и запрашивать его выполнимость – Anant

Смежные вопросы