Jump to content

Angel96

Members
  • Posts

    14
  • Joined

  • Last visited

Posts posted by Angel96

  1. Buna!

    Acum citeva zile mia venit o idei prin cap, sa instalez Debian7 pe un virtualbox, dar pe parcursul instalarii apare o erroare:

    Customize package manager!

     

    An error was encountered while trying to use the specified mirror of the Debian archive. Possible reasons for the error: the wrong mirror is selected; a mirror is not available (possibly due to network problems); a non-working mirror (for example, due to an incorrectly used Release file); Mirror does not support the correct version of Debian. Additional details can be found in / var / log / syslog or in virtual console 4. Check your chosen mirror or try another one.

                 <Return>                             <Continue>

    Poate stie cineva cum sa rezolv aceasta problema.

  2. a mai aparut ceva le tema aceasta:

    <select id="colorPicker" onchange="JavaScript:changeBack()">
        <option value="transparent">None</option>
        <option value="yellow">Yellow</option>
        <option value="salmon">Salmon</option>
        <option value="lightblue">Light Blue</option>
        <option value="limegreen">Lime Green</option>
        <option value="cyan">Cyan</option>
        <option value="violet">Violet</option>
        <option value="red">Red</option>
    </select>

    Se poate de facut ca sa fie butoane din coduri html, ca sa pot sa le editez sa le dau un stil oarecare...?

    Ca sa intelegeti mai bine ce am vrut, mai jos va las un exemplu.

     

     

  3. 3 hours ago, c3m3d3 said:

    Perfect! Până în acest punct ai reușit să salvezi culoarea aleasă în LocalStorage. Valoarea aia o să rămână acolo și după refresh. Acum tot ce ai de făcut este să accesezi respectiva valoare după ce pagină s-a încărcat.

    Repet, ca să accesezi ceva din localStorage folosești:
     

    
    localStorage.getItem('numeCheie');
    

    Partea asta de mai sus îți caută cheia respectivă în localStorage.  Și îți returnează ce a găsit în ea. Mai departe, este cam irelevant dacă ți-o returnează și tu nu o stochezi nicăieri, deci o pui într-o variabilă în modul ăsta.
     

    
    let culoareaMea = localStorage.getItem('myColor');

    Acum, variabila culoareaMea conține valoarea pentru cheia myColor din localStorage.  Ce trebuie să faci mai departe este ca atunci când pagina s-a încărcat, să setezi culoarea pentru respectivul div cu valoarea din culoareaMea.

    Văd că folosești ceva CMS și mă gândesc că HTML-ul este generat din mai multe părți și poate nu vrei să te complici să vezi de unde e generat, așa că în acest context poți să te folosești de un alt event listener.

    Sunt două mari event-uri în JavaScript ce sunt emise în momentul în care se încarcă o pagină și anume: DOMContentLoaded și load.
    - DomContentLoaded 
    este emis imediat ce DOM-ul a fost încarcat ( Doar HTML-ul fără CSS și imagini )
    - load este emis după ce totul a fost încărcat ( DOM / CSS / Imagini )

    În cazul tău, load este event-ul pe care trebuie să-l "asculți" deoarece tu modifici CSS. Iar treaba asta o faci în felul următor:
     

    
    <script>
    // Aici așteptăm eventul de 'load' ca să știm când s-a încărcat pagina
    window.addEventListener("load", function(){
      
      const culoareaPrecedenta = String( localStorage.getItem('myColor') || '#fff' );
      // Aici iau culoarea precedentă din localStorage
      // De asemenea o transform în String ca să nu fie probleme
      
      document.getElementById('content_box').style.background = culoareaPrecedenta;
       // Aici schimb culoarea actuală cu ce avem în localStorage
    
    });
    </script>

    Pune treaba asta la sfârșitul paginii :)


     

    Mersi mai ajutat mult, totul merge perfect!

  4. 2 hours ago, c3m3d3 said:

    Dacă folosești Chrome, în Developer Tools poti vedea acolo ce ai în Local Storage. Apasă F12, apoi du-te la tab-ul Application, iar în stânga o să-ți apară "Storage". Sub Storage o să ai Local Storage cu mai multe site-uri, caută site-ul tău și deschide-l. Mai departe de acolo ai să vezi toate cheiile și valoriile din LocalStorage setate de respectivul site, în cazul tău trebuie să apară ceva cu cheia "MyColor" și o anumită valoare. Rămâi cu consola deschisă atunci când schimbi culoarea și vezi dacă se adaugă ceva acolo sau nu. 

     

     

  5. 4 hours ago, c3m3d3 said:

    Cum ai făcut?
    Încearcă ca imediat după ce s-a încărcat pagina să verifici dacă variabila din localStorage propusă de Gecko, conține culoare. Asta deoarece funcția ta este apelată doar atunci când alegi ceva din acel select, nu și când se-ncarcă pagina, prin urmare culoarea nu are cum să fie schimbată.

    Funcția changeBack ar trebui să arate în felul următor:

    
    const changeBack = () => {
      	  // Aici luamm o culoare
    	  let back = document.getElementById('colorPicker').value;
      	  // Aici stocam culoarea in localStorage sub denumirea 'myColor'
      	  localStorage.setItem('myColor', String(back));
      	  // Aici setăm culoarea unui element cu valoarea aleasă
          document.getElementById('content_box').style.background = back;
    }

    Până în acest punct ceea ce ai făcut a fost că ai stocat o culoare în LocalStorage, mai departe trebuie să iei culoarea respectivă după ce s-a încărcat pagina și să o setezi pe un element. Pentru asta, poți de exemplu să asculți event-ul onLoad pe <body>. Ex: <body onload="functiaMea()" 
    Iar functiaMea() poate să fie ceva de acest gen:

    
    const functiaMea = () => { 
    	// Aici iau culoarea precedenta din localStorage, iar dacă una precedenta nu există se va returna codul pentru culoarea albă
    	const culoareaPrecedenta = localStorage.getItem('myColor') || '#fff';
    
    	// Aici schimb culoarea 
    	document.getElementById('content_box').style.background = culoareaPrecedenta
    }


    Ca și bonus:
    Am să asum că ești începător, și mă gândesc că modul în care Gecko verifică culoarea precedentă te pune în confuzie și ți se pare criptic, mă refer la: 
     

    
    const culoareaPrecedenta = localStorage.getItem('myColor') || '#fff';

    Aici pornește de la faptul că funcția getItem() ce aparține de LocalStorage, returnează false sau true în funcție de dacă a găsit cheia respectiva ( 'myColor' ) sau nu. Mai departe, pe baza acestui lucru poți face diferite verificări. @Gecko a ales să se folosească de modul în care expresiile sunt evaluate în JavaScript, și să folosit de operatorul OR ( || ) ca să scrie asta mai pe surt.

    Ca să-ți faci o idee, expresia de mai sus se poate scrie și sub forma:
     

    
    let culoareaPrecedenta = null;
    
    if( localStorage.getItem('myColor') === true ) {
    	culoareaPrecedenta = localStorage.getItem('myColor');
    } else {
      return '#fff' 
    }
    
    // În JavaScript condițiile din if sunt toate "transformate" în booleans ( true or false ) prin urmare dacă dorești să verifici dacă ceva e adevarat, poți să renunti la " === true ",
    // iar if statement-ul tău poate să fie și în modul:
    if( localStorage.getItem('myColor') ) { // do stuff } 


    Totuși e cam lunguiața, deci o variantă mai scurtă ar fi folosind shorthand if statements aka așa:

    
    // În prima fază verifici dacă există o culoare, în a 2-a fază dacă există o returnezi, dacă nu returnezi culoarea albă
    let culoareaPrecedenta = localStorage.getItem('myColor') === true ? localStorage.getItem('myColor') : '#fff';
    
    // Totuși, ții minte ce am spus mai sus legat de evaluarea expresiilor? Ea poate să fie scrisă și mai scurt așa:
    let culoareaPrecedenta = localStorage.getItem('myColor') ? localStorage.getItem('myColor') : '#fff';
    

    Știind aceste lucruri, poți să te folosești de modul în care expresiile din stânga și dreapta operatoriilor sunt evaluate și să ajungi la varianta originală care este una scurtă. În cazul operatorului OR ( || ) condițile din stânga și dreapta lui sunt evaluate la True sau False.
    Și la nivel fundamental, la executare o să ajungi să ai ceva de acest gen:
     

    
    let color = localStorage.getItem('myColor') || '#fff';
    
    // Aici e posibil ca funcția getItem să returneze False, by default în JavaScript orice String este evaluat ca și True.
    // Prin urmare dacă culoarea ta nu este găsită se va ajunge la ceva de genul:
    
    let color = false || "#fff"
    
    // Mai departe, având în vedere că operatorul OR păstrează doar condițiile adevărate ( TRUE ), iar string-urile sunt TRUE, se va ajunge la:
    
    let color = "#fff";

    Iar dacă ar fi ca localStorage să conțina o valoare adevărată,  atunci s-ar ajunge la true || true, iar având în vedere că în JavaScript expresiile sunt executate de la stânga la dreapta, se va păstra ce este în partea stângă a operatorului.

    În acest mod, poți face tot felul de chestii cu operatori, să zicem că dacă dorești ca atunci când nu există o culoare precedentă, să nu faci nimic. Ei bine poți să te folosești de operatorul AND ( && ) pentru asta și să faci ceva de genul:

    
    let color = localStorage.getItem('myColor') && localStorage.getItem('myColor');

     

    Prin treaba de mai sus, color o să fie setat 'undefined' în functie de dacă există sau nu o culoare setată înainte ;)

    Poți să-mi scrii dacă ai nevoie cu ajutor legat de JavaScript în general.

    Spor! 

     

    Totusi nu ramine Constanta dupa restart al paginei.

  6. 3 hours ago, Gecko said:

    Nu ai nevoie de libs pentru cookies. Foloseste localStorage care vine by default in toate browserele recente.

     

    Cand alegi culoarea, o retii prin localStorage:

    
    localStorage.setItem('myColor', 'culoarea aici');

    Cand incarci pagina, verifici daca a fost salvata anterior in localStorage, astfel:

    
    var color = localStorage.getItem('myColor') || '#fff';

    #fff va fi culoarea default daca n-a fost setat. Daca a fost setat, vei avea culoarea in "color". Pe baza variabilei o aplici pe div sau unde vrei tu.

    nu mi sa primit nimic, posibil nu am facut cum trebuie.

  7. 4 hours ago, theandruala said:

    Din ce am inteles, tu vrei ca schimbarea sa îți rămâna Constanța. Deci trebuie sa stochezi ceea ce vrei tu undeva. Folosind js, cam orice fsci persista pana la refresh. Încearcă sa stochezi în cookie, și sa iei de acolo când intri pe pagina. 

    da asta doresc, dar nustiu cum sa stochez in cookie...

  8. Salut!

    Am un script, si nu stiu cum sa fac o chestie la el.

    <script type='text/javascript'>
        function changeBack()
        {
            var back = document.getElementById('colorPicker').value;    
            document.getElementById('content_box').style.background = back ;
        }    
          </script> 
    
    <select id="colorPicker" onchange="JavaScript:changeBack()">
        <option value="transparent">None</option>
        <option value="yellow">Yellow</option>
        <option value="salmon">Salmon</option>
        <option value="lightblue">Light Blue</option>
        <option value="limegreen">Lime Green</option>
        <option value="cyan">Cyan</option>
        <option value="violet">Violet</option>
        <option value="red">Red</option>
    </select>

    Unde scrie content_box acolo este ID a unui block sau a oricui DIV.

    Scriptul consta din aceea ca sa skimbe culoarea unui block sau a unui DIV cu elementul ID

    Scriptul merge bine, cind imi aleg culoarea respectiva pe care o doresc se skimba, dar nu se salveaza sa fie tot aceeasi culoare pe care am aleso.

    Ca sa intelegeti mai bine, de exemplu: Vrea ca blockul respectiv pe care lam ales sa fie de culoarea Violet, dupa ce miam ales culoarea, blockul sa skimbat in Violet, si iata acum si problema mea apare pe care doresc sa o rezolv. Dupa ce miam schimbat culoarea blockului dau un restart la pagina si culoarea numai este, se schimba in cea default. Eu doresc ca dupa ce miam ales culoarea respectiva tot ea sa ramina, pina nu voi dori sa chimb alta culoare.

    Sper ca mati inteles ce deresc.

×
×
  • Create New...