2016-06-14 9 views
5

Ich bin Einfügen und Entfernen von div basierend auf Wert von Cookie. Der Wert von Cookie wird aktualisiert, indem das Kontrollkästchen aktiviert und deaktiviert wird. Dies funktioniert gut für eine einzelne Registerkarte. aber wie man div's in anderen Tab aktualisiert, auch wenn mehrere Tabs für die gleiche Seite geöffnet sind. Der Cookie-Wert wird aktualisiert, da er für den Browser gleich bleibt, aber wie man divs in Bezug auf den Cookie-Wert hinzufügt oder entfernt.Update div Elementwert basierend auf Cookie in mehreren Tabs

+0

See [ 'postmessage()'] (https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) –

+0

Bitte senden Sie Codebeispiel –

+0

die Code ist zu groß zum Posten – Pratyush

Antwort

3

Ich fand einen Weg, der für mich funktionierte, ich benutzte eine Variable mit globalem Umfang, um den Wert von Cookie zu speichern. Definieren Sie eine Methode, um zu überprüfen, ob der Cookie-Wert nicht dem der Variablen entspricht. Aktualisieren Sie die Seite.

Wenn Sie die aktuelle Seite nicht aktualisieren müssen, aktualisieren Sie den Wert der Variablen, wenn Sie ein Cookie aktualisieren.

Also im Grunde bin ich erfrischend andere Tabs, aber nicht meine aktuelle Registerkarte. Ich weiß, dass dies nicht der beste Weg ist, aber es wird den Job machen.

Wenn Sie etwas effizienter finden, bitte posten.

1

Wenn Sie lokalen Speicher anstelle eines Cookies verwenden möchten, können Sie das Ereignis storage verwenden, das ausgelöst wird, wenn eine Änderung am lokalen Speicher vorgenommen wird.

Ein laufendes Beispiel finden Sie unter http://synccheckbox.site44.com/. Code eingefügt unter:

<!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

können wir verwenden lokaler Speicher in PHP? – Pratyush

+0

Ich bin mir nicht sicher, was du meinst. Lokaler Speicher ist eine Browser-Funktion, auf die nur im Browser zugegriffen werden kann. – smarx

+0

Ich denke @ Pratyush möchte Werte aus dem lokalen Speicher in einige PHP-Variablen manipulieren und fragen nach seiner Machbarkeit – Anant

Verwandte Themen