Visualizzazione risultati 1 fino 18 di 18

Discussione: [JS] Applicare onClick a tutti i collegamenti di una pagina...

  1. #1
    Guest

    Predefinito [JS] Applicare onClick a tutti i collegamenti di una pagina...

    Ciao a tutti, ho questo codice che invece di ripeterlo in ogni collegamento (<a href) vorrei che si facesse da solo tramite una funzione in javascript. E' possibile?
    Codice PHP:
    onClick="return hs.htmlExpand(this, { objectType: 'iframe', objectHeight: screen.height, width: screen.width-50 } )"
    Questo è il codice e viene applicato manualmente a tutti i collegamenti... io vorrei che fosse fatto da solo con javascript! =D
    Grazie mille a tutti! ^^

  2. #2
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,186

    Predefinito

    Codice:
    $('a').attr('onClick',"return hs.htmlExpand(this, { objectType: 'iframe', objectHeight: screen.height, width: screen.width-50 } )");
    ..è jQuery, quindi dovrai includere, ad esempio, http://code.jquery.com/jquery-1.4.2.min.js

    Ciao!

  3. #3
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Se non vuoi usare JQuery, puoi usare i metodi classici di DOM:
    Codice:
    var links = document.getElementsByTagName ('A');
    for (var i in links)
       links[i].setAttribute ('onclick', '...'); // quello che hai scritto sopra, opportunamente "escaped"
    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  4. #4
    Guest

    Predefinito

    Non funziona..... =( I metodi sono tutti e due semplici però preferisco quello di dementialsite poiché non uso JQuery! =P
    Codice PHP:
    <script type="text/javascript">
    var
    links = document.getElementsByTagName ("a");
    for (var
    i in links) { links[i].setAttribute("onClick","return hs.htmlExpand(this, { objectType: 'iframe', objectHeight: screen.height, width: screen.width-50 } )"); }
    </script>
    Grazie mille!! ^^"

  5. #5
    makingweb non è connesso Utente attivo
    Data registrazione
    30-06-2009
    Messaggi
    281

    Predefinito

    Si ma che errore ti da il debbugger?

  6. #6
    Guest

    Predefinito

    Firebug:
    links[i].setAttribute is not a function
    [Break on this error] for(var i in links) { links[i].setAttr...ght, width: screen.width-50 } )"); }

  7. #7
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Così dovrebbe funzionare:
    Codice:
    var links = document.getElementsByTagName("a");
    for(var i = 0; i < links.length; i++){
        links[i].setAttribute("onclick", /*valore*/);
    }

  8. #8
    Guest

    Predefinito

    Niente da fare! =( Continua a non funzionare...
    Codice PHP:
    <script type="text/javascript">
    hs.graphicsDir = 'highslide/graphics/';
    hs.outlineType = 'rounded-white';
    hs.wrapperClassName = 'draggable-header';
    /*******************************/
    var links = document.getElementsByTagName("a");
    for(var
    i = 0; i < links.length; i++){
    links[i].setAttribute("onclick", "return hs.htmlExpand(this, { objectType: 'iframe', objectHeight: screen.height, width: screen.width-50 } )");
    }
    </script>

  9. #9
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Puoi scrivere l'indirizzo della pagina?

  10. #10
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Molto probabilmente DOM non è ancora pronto quando richiami document.getElementsByTagName().

  11. #11
    Guest

    Predefinito

    La pagina è in locale.... potrebbe essere che quel javascript è messo fuori il body, prima della fine di head? ^^
    Ecco il link di esempio... sono tutti così! =D
    Codice PHP:
    <p><a href="http://url.com"><img src="http://forum.it.altervista.org/images/sito.png" /> Testoooo</a></p>

  12. #12
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Citazione Originalmente inviato da sIM Visualizza messaggio
    La pagina è in locale.... potrebbe essere che quel javascript è messo fuori il body, prima della fine di head? ^^
    Ecco il link di esempio... sono tutti così! =D
    Codice PHP:
    <p><a href="http://url.com"><img src="http://forum.it.altervista.org/images/sito.png" /> Testoooo</a></p>
    Se è così, ha ragione javascripter, se esegui getElementsByTagName nell'head, quando non ha ancora processato il body è ovvio che non restituirà alcun elemento.

  13. #13
    Guest

    Predefinito

    Niente da fare anche mettendolo dopo il body! Soluzioni?
    Grazie mille a tutti! ^^

  14. #14
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Non basta metterlo dentro il body, deve essere l'ultimo elemento. Se mettessi online la pagina o postassi il codice completo sarebbe tutto più semplice...

  15. #15
    Guest

    Predefinito

    Ahhh xD Non avevate detto di metterlo alla fine dopo i links... ma se io lo volessi dentro il tag head cosa dovrei mettere?? ^^ Grazie mille.

  16. #16
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Se lo volessi mettere dentro l'head, dovresti eseguire il tutto una volta che il documento è stato interamente processato, quindi potresti eseguire dopo il caricamento (onload) del documento, oppure una volta che il DOM è stato completato, ma questo è un po' più difficile, per te dovrebbe essere sufficiente il primo metodo.

  17. #17
    Guest

    Predefinito

    Mmm ma non posso dal tag head applicare un body.onload e così creare una funzione con quel codice? Oppure una funzione "anonima"? ^^
    Grazie mille! =)
    PS. E' vero che in javascript non sono bravissimo... ma non c'è bisogno che mi dici per te dovrebbe essere sufficiente =)
    Edit: infatti ci sono riuscito come volevo io! ;D Grazie mille! =P
    Ultima modifica di sIM : 20-07-2010 alle ore 15.16.59

  18. #18
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Citazione Originalmente inviato da sIM Visualizza messaggio
    PS. E' vero che in javascript non sono bravissimo... ma non c'è bisogno che mi dici per te dovrebbe essere sufficiente =)
    Era solo per informarti che c'erano anche altre alternative più efficienti ma più complesse, spesso neanche io uso la seconda che ti ho proposto, perché non segue gli standard ed è diversa per ogni browser.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •