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

    Incompatibilità javascript e lightbox

    Salve a tutt*!
    Ho un problema che mi piacerebbe risolvere. Vado a spiegare.
    In una pagina del sito devono convivere un menu generato attraverso fireworks e lightbox. Entrambi usano javascript e vanno in conflitto, nel senso che lightbox funziona perfettamente, mentre il menu non genera le tendine quando ci navigo sopra.
    Il problema in lightbox sta nello script prototype.js, è lui che entra in conflitto con lo script generato da fireworks. Questo fatto è noto nella letteratura internet che mi sono fatto in questi giorni, ma io non riesco a risolverlo per quanto sono a secco di java!
    Se qualcuno riesce o mi consigliasse bene gliene sarei grato.

    QUI un link dove vedere scaricare lightbox.

    Questo il file mm_css_menu.js generato da fireworks, dove penso sia annidata l'incompatibilità con lightbox:


    var mmOpenContainer = null;
    var mmOpenMenus = null;
    var mmHideMenuTimer = null;

    function MM_menuStartTimeout(hideTimeout) {
    mmHideMenuTimer = setTimeout("MM_menuHideMenus()", hideTimeout);
    }

    function MM_menuHideMenus() {
    MM_menuResetTimeout();
    if(mmOpenContainer) {
    var c = document.getElementById(mmOpenContainer);
    c.style.visibility = "inherit";
    mmOpenContainer = null;
    }
    if( mmOpenMenus ) {
    for(var i in mmOpenMenus) {
    var m = document.getElementById(mmOpenMenus[i]);
    m.style.visibility = "hidden";
    }
    mmOpenMenus = null;
    }
    }

    function MM_menuHideSubmenus(menuName) {
    if( mmOpenMenus ) {
    var h = false;
    var c = 0;
    for(var i in mmOpenMenus) {
    if( h ) {
    var m = document.getElementById(mmOpenMenus[i]);
    m.style.visibility = "hidden";
    } else if( mmOpenMenus[i] == menuName ) {
    h = true;
    } else {
    c++;
    }
    }
    mmOpenMenus.length = c+1;
    }
    }

    function MM_menuOverMenuItem(menuName, subMenuSuffix) {
    MM_menuResetTimeout();
    MM_menuHideSubmenus(menuName);
    if( subMenuSuffix ) {
    var subMenuName = "" + menuName + "_" + subMenuSuffix;
    MM_menuShowSubMenu(subMenuName);
    }
    }

    function MM_menuShowSubMenu(subMenuName) {
    MM_menuResetTimeout();
    var e = document.getElementById(subMenuName);
    e.style.visibility = "inherit";
    if( !mmOpenMenus ) {
    mmOpenMenus = new Array;
    }
    mmOpenMenus[mmOpenMenus.length] = "" + subMenuName;
    }

    function MM_menuResetTimeout() {
    if (mmHideMenuTimer) clearTimeout(mmHideMenuTimer);
    mmHideMenuTimer = null;
    }

    function MM_menuShowMenu(containName, menuName, xOffset, yOffset, triggerName) {
    MM_menuHideMenus();
    MM_menuResetTimeout();
    MM_menuShowMenuContainer(containName, xOffset, yOffset, triggerName);
    MM_menuShowSubMenu(menuName);
    }

    function MM_menuShowMenuContainer(containName, x, y, triggerName) {
    var c = document.getElementById(containName);
    var s = c.style;
    s.visibility = "inherit";

    mmOpenContainer = "" + containName;
    }



    E qui il file htm generato sempre fa fireworks e che richiama il javascript sopra:



    <script language="JavaScript1.2" type="text/javascript">
    <!--
    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_nbGroup(event, grpName) { //v6.0
    var i,img,nbArr,args=MM_nbGroup.arguments;
    if (event == "init" && args.length > 2) {
    if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
    img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
    if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
    nbArr[nbArr.length] = img;
    for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
    if (!img.MM_up) img.MM_up = img.src;
    img.src = img.MM_dn = args[i+1];
    nbArr[nbArr.length] = img;
    } }
    } else if (event == "over") {
    document.MM_nbOver = nbArr = new Array();
    for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
    if (!img.MM_up) img.MM_up = img.src;
    img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])?args[i+1] : img.MM_up);
    nbArr[nbArr.length] = img;
    }
    } else if (event == "out" ) {
    for (i=0; i < document.MM_nbOver.length; i++) { img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
    } else if (event == "down") {
    nbArr = document[grpName];
    if (nbArr) for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
    if (!img.MM_up) img.MM_up = img.src;
    img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
    nbArr[nbArr.length] = img;
    } }
    }

    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];}}
    }

    //-->
    </script>
    <script language="JavaScript1.2" type="text/javascript" src="mm_css_menu.js"></script>
    <style type="text/css" media="screen">
    @import url("./menu.css");
    </style>
    </head>
    <body bgcolor="#666666" onload="MM_preloadImages('Home_f2.gif','Home_f4.gi f','Home_f3.gif','Storia_f2.gif','Storia_f4.gif',' Storia_f3.gif','Dove_f2.gif','Dove_f4.gif','Dove_f 3.gif','Contatti_f2.gif','Contatti_f4.gif','Contat ti_f3.gif','Arredamento_f2.gif','Arredamento_f4.gi f','Arredamento_f3.gif','Occasioni_f2.gif','Occasi oni_f4.gif','Occasioni_f3.gif','menu_r2_c8_f2.gif' ,'menu_r2_c8_f4.gif','menu_r2_c8_f3.gif','Chiavi_f 2.gif','Chiavi_f4.gif','Chiavi_f3.gif');">
    <div id="FWTableContainer1094979022">
    <table border="0" cellpadding="0" cellspacing="0" width="850">

    <tr>
    <td>[img]spacer.gif[/img]</td>
    HO TOLTO DELLE RIGHE MA NON ERANO IMPORTANTI
    <td>[img]spacer.gif[/img]</td>
    </tr>

    <tr>
    <td colspan="10">[img]spacer.gif[/img]</td>
    <td>[img]spacer.gif[/img]</td>
    </tr>
    <tr>
    <td rowspan="2">[img]spacer.gif[/img]</td>
    <td>[img]Home.gif[/img]</td>
    <td>[img]Storia.gif[/img]</td>
    <td>[img]Dove.gif[/img]</td>
    <td>[img]Contatti.gif[/img]</td>
    <td>[img]Arredamento.gif[/img]</td>
    <td>[img]Occasioni.gif[/img]</td>
    <td>[img]menu_r2_c8.gif[/img]</td>
    <td>[img]Chiavi.gif[/img]</td>
    <td rowspan="2">[img]spacer.gif[/img]</td>
    <td>[img]spacer.gif[/img]</td>
    </tr>
    <tr>
    <td colspan="8">[img]spacer.gif[/img]</td>
    <td>[img]spacer.gif[/img]</td>
    </tr>
    </table>
    <div id="MMMenuContainer1014172644_0">
    <div id="MMMenu1014172644_0" onmouseout="MM_menuStartTimeout(500);" onmouseover="MM_menuResetTimeout();">
    <a href="storia.php" target="_self" id="MMMenu1014172644_0_Item_0" class="MMMIFVStyleMMMenu1014172644_0" onmouseover="MM_menuOverMenuItem('MMMenu1014172644 _0');">
    Lastoria
    </a>
    <a href="storia_foto.php" target="_self" id="MMMenu1014172644_0_Item_1" class="MMMIVStyleMMMenu1014172644_0" onmouseover="MM_menuOverMenuItem('MMMenu1014172644 _0');">
    Foto
    </a>
    </div>
    </div>
    <div id="MMMenuContainer1014173154_1">
    <div id="MMMenu1014173154_1" onmouseout="MM_menuStartTimeout(500);" onmouseover="MM_menuResetTimeout();">
    <a href="dove_siamo.php" target="_self" id="MMMenu1014173154_1_Item_0" class="MMMIFVStyleMMMenu1014173154_1" onmouseover="MM_menuOverMenuItem('MMMenu1014173154 _1');">
    Dovesiamo
    </a>
    <a href="raggiungerci.php" target="_self" id="MMMenu1014173154_1_Item_1" class="MMMIVStyleMMMenu1014173154_1" onmouseover="MM_menuOverMenuItem('MMMenu1014173154 _1');">
    Comeraggiungerci
    </a>
    </div>
    </div>
    <div id="MMMenuContainer1014173750_2">
    <div id="MMMenu1014173750_2" onmouseout="MM_menuStartTimeout(500);" onmouseover="MM_menuResetTimeout();">
    <a href="food.php" target="_self" id="MMMenu1014173750_2_Item_0" class="MMMIFVStyleMMMenu1014173750_2" onmouseover="MM_menuOverMenuItem('MMMenu1014173750 _2');">
    Food
    </a>
    <a href="nofood.php" target="_self" id="MMMenu1014173750_2_Item_1" class="MMMIVStyleMMMenu1014173750_2" onmouseover="MM_menuOverMenuItem('MMMenu1014173750 _2');">
    Nofood
    </a>
    <a href="uffici.php" target="_self" id="MMMenu1014173750_2_Item_2" class="MMMIVStyleMMMenu1014173750_2" onmouseover="MM_menuOverMenuItem('MMMenu1014173750 _2');">
    Uffici,agenzieimmobiliarieviaggio
    </a>
    <a href="accessori.php" target="_self" id="MMMenu1014173750_2_Item_3" class="MMMIVStyleMMMenu1014173750_2" onmouseover="MM_menuOverMenuItem('MMMenu1014173750 _2');">
    Accessori
    </a>
    </div>
    </div>
    <div id="MMMenuContainer1014192925_4">
    <div id="MMMenu1014192925_4" onmouseout="MM_menuStartTimeout(500);" onmouseover="MM_menuResetTimeout();">
    <a href="chiavi.php" target="_self" id="MMMenu1014192925_4_Item_0" class="MMMIFVStyleMMMenu1014192925_4" onmouseover="MM_menuOverMenuItem('MMMenu1014192925 _4');">
    Chiaviinmano
    </a>
    <a href="realizzazioni.php" target="_self" id="MMMenu1014192925_4_Item_1" class="MMMIVStyleMMMenu1014192925_4" onmouseover="MM_menuOverMenuItem('MMMenu1014192925 _4');">
    Realizzazioni
    </a>
    </div>
    </div>
    </div>
    </body>
    </html>


    Grazie a potrà aiutarmi!

  2. #2
    Up!
    Dai qualcuno che almeno mi dia un consiglio... Magari potrei sostituire lightbox con altro, cosa mi consigliate?

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non credo che il motivo sia prototype più facile che ci siano dei problemi con il javascript "sporco" generato da fireworks prova a cercare/studiarti jquery per entrambe le operazioni menu/lightbox dovresti risolvere

    P.S. In futuro quando posti codice usa il tasto [code] o [php]
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Grazie per la risposta,

    proverò a studiarmi jquery, anche se non è proprio quello che volevo fare.
    Comunque sull'incompatibilità di lightbox ho trovato diverse forum che ne parlano, quindi penso sia una cosa nota e accertata.
    Altri consigli? Su, su, non siate timidi!

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    visto che il lightbox utilizza il framework prototype ti basta sostituire il menu generato con firework con un menu prototype, in rete ne trovi svariati.

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.