Visualizzazione dei risultati da 1 a 10 su 10

Discussione: JS: gestione iframe

  1. #1

    JS: gestione iframe

    Ciao a tutti!

    Volevo sapere...

    Nel mio sito, esiste una pagina principale, dalla quale e` possibile in maniera esclusiva caricare le altre pagine di tutto il sito, visualizzandole all`interno di un iframe.

    Il codice per poter far questo, l`ho trovato QUI (approfitto per ringraziare).
    Esiste quindi una pagina principale, la index che contiene il seguente codice

    codice:
    <script language="JavaScript"> 
    function change() { 
     var ind = location.href;
     var splitter = ind.indexOf("?");
     if (splitter != -1) {
      var nvar = ind.substring(splitter+1, ind.lenght);
      var param = nvar.indexOf("=");
      if (param != -1) {
       var pag = nvar.substring(0,param);
       var locat = nvar.substring(param+1);
       if (pag == "pag") {
        document.frames['nomeiframe'].location.href = locat;
       }
      }
     }
     else {
      document.frames['nomeiframe'].location.href = "vuoto.htm"; /* mettete al posto di vuoto la pagina che di defualt deve apparire nell'index */
     }
    }
    </script>
    e tutte le restanti pagine del sito che contengono quest`altro

    codice:
    <script language="JavaScript"> 
    var thispage = "nomediquestapagina.htm"; /* inserire qua il nome completo di estensione della pagina corrente */
    if (location.href == top.location.href) { 
    location.href = "index.htm?pag="+thispage; /* nel caso in cui la pagina non sia aperta in un frame / iframe effettuo il redirect alla index contenete il codice dell'iframe */ 
    } 
    </script>
    Questo script serve per impedire che le pagine del sito vengano caricate senza iframe, garantendo la coerenza grafica qual`ora si acceda a pagine specifiche da motore di ricerca.

    Lo script e` perfetto con MSIE, ma da dei problemi con NETSCAPE e mozilla firefox.

    Quello che succede e` che al caricamento della index, che costituisce quindi l`interfaccia di navigazione, non viene letto l`attributo 'nomeiframe' alla stringa

    codice:
    document.frames['nomeiframe'].location.href =
    e quindi la index viene caricata senza la pagina che si e` richiesto di visualizzare.
    Se per esempio l`interfaccia fosse una ciambella con tutt`attorno puffolandia, e al caricamento della pagina avessi impostato puffetta come elemento da richiamare o di default (.location.href = ) all`interno del buco della ciambella , che costituisce l`iframe, puffetta non si carica, e il buco rimane un buco.
    Ripeto, solo con browser netscape o mozilla (con opera e altri non ho fatto la prova, pero` alla fine mi interessa che si veda con netscape e mozilla).

    Ecco, data tutta questa roba, come posso fare per far si che lo script funzioni anche con i suddetti browser, e quindi beccando il link di puffetta da motore di ricerca, io riesca a visualizzarla poi dentro al buco anche con NS e MFF?

    Spero possiate darmi una mano... ringrazio in anticipo per l`attenzione!

    Salut!

    Benedict

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Prova con:

    document.nomeiframe.location.href = ...

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Ti ringrazio, ma non funziona.

    L`errore che da la java console e` sempre lo stesso: document.nomeiframe.location.href = ... non ha proprieta`.

    Un`altro aiutino...?

    Benedict

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    togli document...

    oppure usa:

    window.open(locat,'nomeiframe');

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Purtroppo nessuna di queste soluzioni da te proposte funziona.

    Non potresti spiegarmi perche` non vengono accettati quei comandi dagli altri browser. Ci deve essere una soluzione...

    Benedict

  6. #6
    Visto che non posso modificare il mio post, tocca scriverne un`altro:

    per capire meglio il problema, l`indirizzo a cui mi riferisco e` www.pianetageko.com

    Grazie.

    Benedict

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    prova
    self.frames['nomeiframe'].location.href = locat

    altrimenti assegna all' iframe un id identico al name e separa i comandi
    if(document.all){
    ...
    }
    else{
    document.getElementById('id_iframe').src=locat
    }

    ciao

  8. #8
    Ciao, grazie per l`aiuto!

    Purtroppo anche con self.frames da te suggerito non funziona.

    Non ho capito invece la parte successiva del suggerimento: come verrebbe il codice aggiungendo

    if(document.all){
    ...
    }
    else{
    document.getElementById('id_iframe').src=locat
    }

    Non ho capito dove devo metterlo: se per te non e` un probema, potresti farmi vdere il codice completo con l`aggiunta da te suggerita?

    Grazie ancora!

    Benedict

  9. #9
    Dimenticavo: qual`ora

    if(document.all){
    ...
    }
    else{
    document.getElementById('id_iframe').src=locat
    }

    vada sostuito a

    if (pag == "pag") {
    document.frames['nomeiframe'].location.href = locat;
    }
    }
    }
    else {
    document.frames['nomeiframe'].location.href = "vuoto.htm";

    come dovrei modificare la parte di codice da inserire nelle altre pagine richiamate corrispondente a

    if (location.href == top.location.href) {
    location.href = "index.htm?pag="+thispage;

    alla quale vedo che e` vincolata dal location.href ?

    Benedict

  10. #10
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    premetti sempre window. (o sostituti) a location.href

    if (self.location.href == top.location.href) {
    self.location.href = "index.htm?pag="+thispage;

    quello che dicevo prima
    codice:
    if (pag == "pag") {
      if(document.all){ 
        document.frames['nomeiframe'].location.href = locat; 
      } 
      else{ 
        document.getElementById('id_iframe').src=locat 
      } 
    }
    se vuoi puoi provare anche quanto scritto qui
    ciao

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.