Visualizzazione dei risultati da 1 a 7 su 7

Discussione: conflitto tra script?

  1. #1
    Utente di HTML.it L'avatar di hako
    Registrato dal
    Mar 2002
    Messaggi
    991

    conflitto tra script?

    Ho una pagina con un menu orizzontale a cascata in JS che funziona perfettamente.
    Ma quando richiamo un'ulteriore js nl body onload il menù non funziona più!!!:master:

    C'è un modo per risolvere?
    Grazie
    cosa accaderebbe domani?

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao hako,

    ci sarà un conflitto nell'assegnazione del window.onload

    devi "fondere" i due window.onload=....

    (se non sai come posta un link per vedere il codice)

  3. #3
    Utente di HTML.it L'avatar di hako
    Registrato dal
    Mar 2002
    Messaggi
    991
    Ciao willybit, questo il codice funzionante della pagina fino al tag body:

    <html>

    <head>

    <title></title>



    <SCRIPT LANGUAGE="JavaScript">
    <!--
    NS4=(document.layers) ? true : false;
    IE4=(document.all)?true:false;
    ver4 = (NS4 || IE4) ? true : false;
    function popUp(){return};
    function popDown(){return};
    areCreated=false;
    if (!ver4) event=null;
    //-->
    </SCRIPT>

    <SCRIPT LANGUAGE="JavaScript">
    <!--
    if (ver4) {
    menuWidth = 140;
    childOverlap = 3;
    childOffset = 5;
    perCentOver = null;
    secondsVisible = 0.5;
    fntCol = "#999999";
    overFnt = "white";
    fntSiz = "11px";
    fntWgh = "normal";
    fntSty = "normal";
    fntFam = "arial,helvetica,verdana";
    backCol = "#000000";
    overCol = "#000000";
    linHgt = "normal";
    borWid = 1;
    borCol = "#ff9933"
    borSty = "outset";
    imgSrc = "images/freccina.gif";
    imgSiz = 15;

    }
    //-->
    </SCRIPT>


    <SCRIPT LANGUAGE="JavaScript">
    <!--
    if (ver4) {
    document.write("<SCRIPT LANGUAGE='JavaScript' SRC='plugin/arrays.js'><\/SCRIPT>");
    document.write("<SCRIPT LANGUAGE='JavaScript' SRC='plugin/menu.js'><\/SCRIPT>");
    }
    -->
    </script>



    </head>

    <body link="#999999" vlink="#999999" alink="#999999" bgcolor="#666666">

    Poi inserisco questo script nell'head (il menù continua a funzionare):

    <script language="javascript">
    function ale(){
    var dato=location.search.substr(1);
    document.f1.parola.value=dato;
    }
    </script>


    Quando invece modifico il tag body per richiamare lo script il menù smette di funzionare:

    <body onLoad="ale()" link="#999999" vlink="#999999" alink="#999999" bgcolor="#666666">


    è chiaro ciò che ho scritto?
    cosa accaderebbe domani?

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    è chiaro ciò che hai scritto

    invece di mettere la funzione ale() nell'onload del body prova a fare così
    codice:
    if(window.onload){
      strOnload = window.onload
      strOnload = strOnload.toString()
      strOnload = strOnload.substr(strOnload.indexOf('{')+1,strOnload.lastIndexOf('}')-strOnload.indexOf('{')-1)
    }else strOnload=''
    window.onload=new Function(strOnload+'ale();')
    famme sape'

  5. #5
    Utente di HTML.it L'avatar di hako
    Registrato dal
    Mar 2002
    Messaggi
    991
    Funziona!!!

    mi spieghi in parole semplici (non voglio rubarti altro tempo e non capisco molto di js) perchè nasceva quel conflitto e come lo hai risolto?

    Grazie 1000!
    cosa accaderebbe domani?

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    in questi js esterni
    codice:
    <SCRIPT LANGUAGE="JavaScript"> 
    <!-- 
    if (ver4) { 
    document.write("<SCRIPT LANGUAGE='JavaScript' SRC='plugin/arrays.js'><\/SCRIPT>"); 
    document.write("<SCRIPT LANGUAGE='JavaScript' SRC='plugin/menu.js'><\/SCRIPT>"); 
    } 
    --> 
    </script>
    sicuramente ci sarà almeno un window.onload=qualcosa
    se poi tu metti qualcos'altro nell'onload del tag body è come se cancellassi l'assegnazione dei js...
    ti commento il mio script
    codice:
    if(window.onload){ //se esiste qualcosa nell'onload
      strOnload = window.onload
      strOnload = strOnload.toString()//ti restituisce "{ qualcosa;qualcosa;.....}"
      strOnload = strOnload.substr(strOnload.indexOf('{')+1,strOnload.lastIndexOf('}')-strOnload.indexOf('{')-1)//togli le graffe all'inizio e alla fine
    }else strOnload=''
    window.onload=new Function(strOnload+'ale();')//assegna all'onload l'onload precedente più la funzione ale()

  7. #7
    Utente di HTML.it L'avatar di hako
    Registrato dal
    Mar 2002
    Messaggi
    991
    Chiarissimo!
    grazie di nuovo, questi js mi stanno appassionando penso proprio che inizierò a studiarli
    :quipy:
    cosa accaderebbe domani?

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.