Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Cambiare funzione javascript al volo

    salve a tutti vorrei sapere se e come e' posibile cambiare "al volo" una funzione javascript assegnata ad un evento di un bottone. Cerco di essere piu' chiaro...

    in pratica ho trovato uno script per il cms joomla, che mi permette di sfruttare ajax per il caricamento delle pgg aleggerendo di molto il carico del server, non che' la velocota' del mio sito in generale.

    Lo script in questione, non fa altro che sostituire i link "standard" presenti nella pagina, con una funzione javascript.

    Codice PHP:
    <script type="text/javascript">
    function ajaxLinks () {
    for (var i=0;i < document.links.length;i++) {

    if(document.links[i].href.substr(0,<?php echo strlen($mosConfig_live_site)?>)=="<?php echo $mosConfig_live_site ?>"||document.links[i].href.substr(0,9)=="index.php:"){

    document.links[i].href = "javascript:ajaxload('index2.php"+document.links[i].href.substring(<?php echo strlen($mosConfig_live_site)+10?>)+"')";

    }}}

    ajaxLinks();

    <script>

    fino a qui tutto ok, ma purtroppo i borroni dei form, che spesso contengono un link, non sono affetti da questo cambiamento....

    dovrei quindi aggiundere una porzione di codice in cui si scandagliano i bottoni del documento, e sostutuisce il contenuto dell'evento onclick.

    in pratica da

    Codice PHP:
    <input onclick="document.location.href='http://www.pippo.it/index.php?option=com_poll&task=results&id=12';" class="button" value="Guarda" type="button"
    dovrebbe diventare se non erro

    Codice PHP:
    <input onclick="ajaxload('http://www.pippo.it/index.php?option=com_poll&task=results&id=12');" class="button" value="Guarda" type="button"
    putroppo non riesco a capire come fare a cambaire la fuinzione dell'evento on click....

    ho guardato in rete, ma sembra che non ci siano info a riguardo, piu' che altro ho trovato uno script che si chiama attachevent, ma da quanto ho capito, si limita ad aggiungere un evenmto nuovo, non a cambiarne uno gia' definito....

    Secondo voi, se non fosse possibile camnbaire tramite dom, i valori che mi interessano e' forse possibile sostituire con javascript "brutalmente" il codice come si trattasse di puro e semplice teso?

    avete idee a riguardo?

  2. #2
    Prova con
    document.getElementById(id_del_bottone).onClick = nomefunzione;

    ciao
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  3. #3
    eh eh ho gia' provato questa strada,
    ma si adatta solo a un caso singolo, e solo se ogni bottone ha il suo id; cosa che non e' così purtroppo.

    Io inoltre non ho la possibilita' di assegnare un id diverso ai bottoni che ne sono sprovvisti, perche' dovrei cambiare a mano il codice di tutti i plugin e le estensioni di joomla (non mi piace neppure come idea, perche' a ogni aggiornamento dovrei ripetere il lavoro), avevo tentato di scrivere un ciclo simile a quello preesistente.

    Putroppo non funziona; pero' no riesco a capire come mai......


    Codice PHP:
    for (var i=0;i < document.input.length;i++) {

    if(document.input[i].onclick.substr(0,<?php echo strlen($mosConfig_live_site)?> )=="<?php echo $mosConfig_live_site ?>"||document.input[i].onclick.substr(0,9)=="index.php:"){

    document.input[i].onclick= "java-script:ajaxload('index2.php"+document.input[i].onclick.substring(<?php echo strlen($mosConfig_live_site)+10?> )+"')";

    }}}

    la mia personale opinione e' che la variabile "document.input.length" sia sbagliata in quanto non ottenibile o perche' al suo interno vengono calcolati tutti gli input(radio, list,select,*) non solo i bottoni...

    potrei sbagliare, non ho pero' altre iddee al riguardo

    dovrei quindi trovare un parametro piu' selettivo, inserire a meta' del ciclo una funzione di controllo che in caso di esito negativo, rompa il ciclo.

    pero' purrtoppo non sapendo se cosa ho scritto e' conpletamente sbagliato o solo in parte, non so come intervenire....

    che cosa ne pensate?

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.