2016-05-25 18 views
0

Ich arbeite an Cookies.Cookies - js Dateidaten werden nicht dynamisch aktualisiert

Beschreibung: Möchten Sie die js-Datei ändern und in Cookie speichern.

Wenn ich auf B2b industry Link klicken, Seite sollte die js-Datei von banking.js zu b2b.js und so weiter ersetzen ...

Das obige Szenario (die js Datei ersetzen) wie erwartet funktioniert.

Problem: Aber nach der Skriptdatei laden, ich versuche, den Inhalt für <h1>, <p> Tags aus b2b.js Datei zu ersetzen, die bewirkt wird, nicht immer ...

Jede Hilfe bitte?

PS: Das gleiche funktioniert für CSS-Datei Schalter


Init.js

var Cookies = { 
    SetCookie: function (c_name, value, exdays) { 
     var exdate = new Date(); 
     exdate.setDate(exdate.getDate() + exdays); 
     var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString()); 
     document.cookie = c_name + "=" + c_value; 
    }, 

    GetCookie: function (c_name) { 
     var i, x, y, ARRcookies = document.cookie.split(";"); 
     for (i = 0; i < ARRcookies.length; i++) { 
      x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("=")); 
      y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1); 
      x = x.replace(/^\s+|\s+$/g, ""); 
      if (x == c_name) { 
       return unescape(y); 
      } 
     } 
    } 
} 

// file change 
if (Cookies.GetCookie("industryBased") != "") { 
    setIndustryFile(Cookies.GetCookie("industryBased")); 
} 

function setIndustryFile(industryFileName) { 
    document.getElementById("industryScriptFile").src = industryFileName; 
    Cookies.SetCookie("industryBased", industryFileName, 60); 
    return false; 
} 

Index.HTML

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Test</title> 
    <script src="jquery.min.js"></script> 
    <script id="industryScriptFile" src="banking.js" type="javascript"></script> 
    <script src="init.js"></script> 
    </head> 
    <body> 
    <h1>What is Lorem Ipsum?</h1> 
    <ul> 
     <li><a href="#b2b" onclick="setIndustryFile('b2b.js');return false;")>B2b industry</a></li> 
     <li><a href="#travel" onclick="setIndustryFile('travel.js');return false;")>Travel industry</a></li> 
     <li><a href="#healthcare" onclick="setIndustryFile('healthcare.js');return false;")>Healthcare industry</a></li> 
    </ul> 
    <p>Lorem Ipsum</p> 
    <a href="page2.html">Go to Page 2</a> 
    </body> 
</html> 

b2b.js

jQuery('h1').html('B2B Industry heading...'); 
jQuery('p').html('B2B Industry content...'); 
jQuery('body').css('color', 'red'); 

Antwort

1

Bezieht sich auf http://browsercookielimits.squawky.net/

ich Ihre jeweils Cookies Größe ist überdimensioniert denken, so dass der Browser Speichern sie nicht.

Jeder Browser hat eine unterschiedliche Grenzgröße für die Speicherung von Cookies. Stellen Sie sicher, dass die Größe Ihrer Cookies nicht übergroß ist.

+0

Danke für das Hinweis, dass ... meine Dateigröße ist um 120KB :( – Reddy

+1

Sie können stattdessen window.localStorage verwenden, es ist API viel besser und einfacher zu verwenden als für Cookies. Es sollte mindestens 10 MB für Haupt – Alexey

+1

Yeah, du hast Recht, aber, es gibt immer noch Limit wie beschrieben von dieser Seite: http://dev-test.nemikor.com/web-storage/support-test/ So vorsichtig mit Ihrer Datengröße. –

Verwandte Themen