Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    25

    Coesistenza due javascript in stessa pagina

    Salve, ho un problema con la coesistenza di due javascript nella stessa pagina html: il primo è uno slideshow in jquery che sta al centro della pagina, l'altro uno slideshow di immagini di sfondo a grandezza variabile. Da soli funzionano alla perfezione mentre inserendoli tra gli head vanno in conflitto:

    function MM_swapImgRestore() { //v3.0
    var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
    }
    function MM_preloadImages() { //v3.0
    var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    }

    function MM_findObj(n, d) { //v4.01
    var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
    }

    function MM_swapImage() { //v3.0
    var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
    if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
    }
    </script>
    <noscript>
    <link rel="stylesheet" type="text/css" href="css/noscript.css" />
    </noscript>
    <link href="style.css" rel="stylesheet" type="text/css" />

    <script src="jquery.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="jquery.maximage.js" type="text/javascript" charset="utf-8"></script>

    <script>
    $(function(){
    jQuery('img.slidemaximage').maxImage({
    isBackground: true,
    slideShow: true,
    slideShowTitle: false,
    slideDelay: 4, //secondi
    maxFollows: 'height',
    overflow:'auto',//importante se ? necessario lo scroll della pagina per i contenuti
    resizeMsg: {show: false}
    });
    });
    function MM_preloadImages() { //v3.0
    var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    }

    function MM_findObj(n, d) { //v4.01
    var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
    }
    function MM_swapImgRestore() { //v3.0
    var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
    }
    function MM_swapImage() { //v3.0
    var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
    if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
    }
    </script>

    Suppongo che sia perché ci sono stesse funzioni ripetute ma sono ignorante in materia e forse qualcuno potrebbe darmi una dritta o spiegazione per risolvere il problema.

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    192
    certo, queste funzioni hanno nomi uguali e per questo entrano in conflitto, basta che cambi i nomi delle funzioni della seconda di slideshow e cambi anche nello stesso nome anche dove vengono richiamate queste funzioni

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    25
    Intanto grazie mille per la risposta. Nel rinominare la funzione del secondo slideshow devo ad esempio aggiungere $(function sfondo(){...}, function sfondoMM_preloadImages() {...} ecc... oppure come? Inoltre devo rinominare anche la funzione nei file javascript esterni? Perché a corredo dello script ci sono anche due file richiamati:

    <script src="jquery.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="jquery.maximage.js" type="text/javascript" charset="utf-8"></script>.

    Grazie e scusa l'ignoranza in materia.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    25
    Scusate ma non c'è proprio nessuno che riesce ad aiutarmi? Non voglio la pappa bella pronta vorrei soltanto una dritta per uscirne presto...

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    perchè hai messo + funzioni identiche? cioè oltre al nome anche il contenuto è identico(o almeno mi pare cosi)

    io eliminerei i doppioni...

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    25
    Le funzioni appartengono a due script diversi presi da internet che separatamente funzionano. Ho fatto esclusivamente un copia incolla sulla pagina html ed ora non riesco a sistemarla definitivamente.
    Mica devo postare anche i codici dei due javascript esterni? O lì non devo modificare nulla?

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    come ti ho già detto elimina i doppioni, i file esterni lasciali cosi come sono

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    25
    Quindi in questo modo:

    <link href="style.css" rel="stylesheet" type="text/css" />

    <script src="jquery.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="jquery.maximage.js" type="text/javascript" charset="utf-8"></script>

    <script>
    $(function(){
    jQuery('img.slidemaximage').maxImage({
    isBackground: true,
    slideShow: true,
    slideShowTitle: false,
    slideDelay: 4, //secondi
    maxFollows: 'height',
    overflow:'auto',//importante se ? necessario lo scroll della pagina per i contenuti
    resizeMsg: {show: false}
    });
    });
    function sfondoMM_preloadImages() { //v3.0
    var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    }

    function sfondoMM_findObj(n, d) { //v4.01
    var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
    }
    function sfondoMM_swapImgRestore() { //v3.0
    var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
    }
    function sfondoMM_swapImage() { //v3.0
    var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
    if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
    }
    </script>

    dovrebbe funzionare? Oppure cos'altro devo modificare? Le variabili? Perché così non funziona, carica soltanto lo slideshow al centro della tabella. Ma è possibile che lo slideshow dello sfondo venga caricato in questo modo:

    [img]DSCF4019.jpg[/img]
    [img]DSCF4029.jpg[/img]
    [img]DSCF4066.jpg[/img]
    [img]DSCF4099.jpg[/img]? Perhè non ci sono richiami allo script nel body, eppure da solo funziona alla grande

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.