Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    22

    sul pc sì e sul mac no... javascript error

    sono disperato

    dunque devo poter aprire in modo dinamico l'apertura
    di un frameset con sopra un menu di navigazione interno
    al mio sito e nel frame inferiore una pagina di un sito
    esterno... dopo varie ricerche sono riuscito ed il risultato
    è quello da me desiderato... sul pc, sul mac mi viene dato
    un errore (mac os 9.2 e ie 5.17)

    l'errore è: 'undefined' is undefined [grazie tante!!]

    se qualcuno ha una minima idea di quale sia il problema
    e di come lo si possa risolvere (anche utilizzando un altro
    codice, basta che mi dia lo stesso risultato) per favore mi
    aiuti!

    nb devo per forza avere una struttura con l'iframe perchè ho dei
    menù a tendina che con i frameset andrebbero a finire sotto il
    frame inferiore


    di seguito vi metto il codice delle mie pagine (top.html è tagliato,
    nella parte sopra l'iframe ci sarebbe il banner con il menù di
    navigazione a tendina)


    grazie a tutti coloro che mi aiuteranno
    bew

    >>>>> prova.html <<<<<<

    <html>
    <head>
    <title></title>
    </head>

    <body>
    prova
    </body>

    </html>


    >>>>> top.html <<<<<<

    <html>
    <head>
    <title></title>
    <script language="javascript" src="queryString.js"></script>
    <script>
    var qs = new QueryString();
    var ref = qs.get("ref");

    function openlink(){document.all.main.src=ref;return true;}
    </script>
    </head>

    <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="openlink();">

    [blablabla]

    <iframe name="main" id="main" width="780" height="100%" frameborder="0" marginheight="0" marginwidth="0" noresize scrolling="no"></iframe>

    </body>
    </html>


    >>>>> queryString.js <<<<<<

    function getField(n) {
    n = n.toLowerCase();
    if (this.fields[n] == undefined) return undefined;
    return this.fields[n][0];
    }

    function getFieldArray(n) {
    n = n.toLowerCase();
    var aux;
    if (this.fields[n] != undefined)
    aux = this.fields[n];
    else
    aux = new Array();
    return aux;
    }

    function QueryString() {
    this.fields = new Array();
    var aux = self.location.search;
    if (aux.length > 0 && aux.charAt(0) == "?")
    aux = aux.substring(1, aux.length);
    var tmp1 = aux.split("&");
    for (var i = 0; i < tmp1.length; i++) {
    var tmp2 = tmp1[i].split("=");
    tmp2[0] = unescape(tmp2[0].toLowerCase());
    if (tmp2[0] != "") {
    if (this.fields[tmp2[0]] == undefined)
    this.fields[tmp2[0]] = new Array();
    var theValue = tmp2.length > 1 ? unescape(tmp2[1]) : "";
    this.fields[tmp2[0]][this.fields[tmp2[0]].length] = theValue;
    }
    }
    this.get = getField;
    this.getAll = getFieldArray;
    }

  2. #2
    su explorer io ho abbandonato l'uso di undefined, neanche a me lo riconosce.

    invece di
    codice:
    function getField(n) { 
      n = n.toLowerCase(); 
      if (this.fields[n] == undefined) return undefined; 
      return this.fields[n][0]; 
    }
    prova qualcosa tipo
    codice:
    function getField(n) { 
      n = n.toLowerCase(); 
      if (!this.fields[n]) return false;
      return this.fields[n][0]; 
    }
    Il controllo (!oggetto) serve per sapere se un oggetto è definito in memoria.
    Attento perché ora la funzione restituisce false, dovrai fare gli opportuni controlli anche al suo richiamo.


  3. #3
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    22
    grazie per avere risposto, stavo perdendo le speranze...

    controllo subito e ti faccio sapere

  4. #4
    su explorer io ho abbandonato l'uso di undefined, neanche a me lo riconosce.

    forse una soluzione al tuo problema può essere quella di convertire prima in stringa il valore del campo

    ex:

    this.fields[n].toString() == "undefined"

    al momento non lo posso testare ma ssappimi dire.

    MR. PINK
    "Like a Virgin" is all about a girl who digs a guy with a big dick.
    The whole song is a metaphor for big dicks.

  5. #5
    Originariamente inviato da AnFrusch@pepp
    forse una soluzione al tuo problema può essere quella di convertire prima in stringa il valore del campo

    ex:

    this.fields[n].toString() == "undefined"

    al momento non lo posso testare ma ssappimi dire.

    già testato ma non funziona. Comunque con il metodo di prima me la sono sempre cavata.

    bye bye.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    22
    nella pagina di partenza:

    <a href="pagina.html?ref=http://www.nomelinkesterno.it">


    nella pagina.html:

    <script>
    var idx = document.location.search.indexOf("=");
    var ref = document.location.search.substring(idx+1);
    function openlink(){document.all.main.src=ref;return true;}
    </script>


    <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="openlink();">

    questo funziona

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.