Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23

Discussione: StyleSheet Switch

  1. #1

    StyleSheet Switch

    Ciao, avrei bisogno di un aiutino da javascriptiani esperti
    Ho questo script per cambiare stile css:
    codice:
    <script language="Javascript">
    <!--
    function setActiveStyleSheet(title) {
     var i, a, main;
      for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
        if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
          a.disabled = true;
          if(a.getAttribute("title") == title) {
          	a.disabled = false;
          	a.disabled = true;
          	a.disabled = false;
          }
        }
      }
    }
    //-->
    </script>
    Ora, mettiamo che io abbia una serie di stili tipo style1.css, style2.css, style3.css questo script è perfetto.
    Ma se oltre ai file style io volessi dare la possibilità agli utenti di cambiare anche il file header1.css, header2.css, header3.css.

    Come devo modificare lo script?
    Se lo lascio così mi raggruppa tutti gli stili e quindi sono costretto a scegliere fra style e header eliminandone uno dei due.

    Qualche suggerimento?

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Passati due parametri title e title1, poi con una semplice or risolvi

    if(a.getAttribute("title") == title || a.getAttribute("title") == title1) {

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Non funziona, il mio codice è così:
    codice:
    <head>
    <link rel="stylesheet" title="Box Predefinito" href="styles/box1.css" type="text/css" />
    <link rel="stylesheet" title="Footer Predefinito" href="styles/footer1.css" type="text/css" />
    <link rel="stylesheet" title="Bg Predefinito" href="styles/bg1.css" type="text/css" />
    
    <link rel="alternate stylesheet" type="text/css" media="screen" title="Box 2" href="styles/box2.css">
    <link rel="alternate stylesheet" type="text/css" media="screen" title="Box 3" href="styles/box3.css">
    <link rel="alternate stylesheet" type="text/css" media="screen" title="Box 4" href="styles/box4.css">
    <link rel="alternate stylesheet" type="text/css" media="screen" title1="Footer 2" href="styles/footer2.css">
    <link rel="alternate stylesheet" type="text/css" media="screen" title1="Footer 3" href="styles/footer3.css">
    <link rel="alternate stylesheet" type="text/css" media="screen" title1="Footer 4" href="styles/footer4.css">
    <link rel="alternate stylesheet" type="text/css" media="screen" title2="Bg 2" href="styles/bg2.css">
    <link rel="alternate stylesheet" type="text/css" media="screen" title2="Bg 3" href="styles/bg3.css">
    <link rel="alternate stylesheet" type="text/css" media="screen" title2="Bg 4" href="styles/bg4.css">
    
    <script language="Javascript">
    <!--
    function setActiveStyleSheet(title) {
     var i, a, main;
      for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
        if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
          a.disabled = true;
          if(a.getAttribute("title") == title || a.getAttribute("title") == title1 || a.getAttribute("title") == title2) {
          	a.disabled = false;
          	a.disabled = true;
          	a.disabled = false;
          }
        }
      }
    }
    //-->
    </script>
    </head>
    <body>
    Box Predefinito
    
    Footer Predefinito
    
    Bg Predefinito
    
    
    
    Box 2
    
    Box 3
    
    Box 4
    
    
    Footer 2
    
    Footer 3
    
    Footer 4
    
    
    Bg 2
    
    Bg 3
    
    Bg 4
    
    </body
    Adesso mi visualizza i 3 css contemporaneamente, ma non mi da la possibilità di cambiare. E in più non visualizza quelli default

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma title1 e title2 cosa sarebbe html creativo la vedo durissima comunque auguri.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Infatti non ho capito benissimo :S

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da lollo10!
    Infatti non ho capito benissimo :S
    Posso solo dirti che andare per tentativi e sicuramente più difficile, studiati l'html e il javascript.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    L'html lo so bene, il javascript meno.. hai delle soluzioni te?

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da lollo10!
    L'html lo so bene,
    Ma dici? Se così fosse non avresti scritto title1 essendo un attributo html
    il javascript meno.. hai delle soluzioni te?
    si studia
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Ok, aspetto qualcuno che abbia voglia di aiutarmi, grazie

  10. #10
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da lollo10!
    Ok, aspetto qualcuno che abbia voglia di aiutarmi, grazie
    Da parte mia avrei gia' dato visti anche i contenuti del primo post.

    Certo che se avessi specificato dall'inizio le tue conoscenze del linguaggio si poteva anche assumere un atteggiamento diverso...

    Vista la tua struttura e quello che si "indovina" essere l'esigenza (non del tutto confortata dal codice postato) ti consiglio:
    codice:
    <script language="Javascript">
    <!--
    function setActiveStyleSheet(nn) {
     var i, a, main;
      for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
        if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
          a.disabled = true;
          if(a.getAttribute("title").indexOf(nn)>=0) {
          	a.disabled = false;
          	a.disabled = true;
          	a.disabled = false;
          }
        }
      }
    }
    //-->
    </script>
    Con i link nel formato:

    1

    2

    3

    4


    ... cambiando opportunamente il title degli stylesheet di default

    ciao

    ps: non limitarti al copi-incolla, cerca anche di capire la logica, altrimenti non impari
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.