Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Se frame, allora ...

  1. #1
    Utente di HTML.it L'avatar di ric.cpp
    Registrato dal
    Sep 2004
    Messaggi
    171

    Se frame, allora ...

    Ciao,

    è possibile verificare in anticipo se la pagina html sta per essere aperta in un frame e in base a questo modificare il comportamento della pagina???


    grazie
    ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    No, puoi solo testarlo una volta che la pagina e` aperta:

    if(top.location.href == self.location.href) alert("non ci sono frame");
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di ric.cpp
    Registrato dal
    Sep 2004
    Messaggi
    171
    come posso utilizzare la cosa per far aprire la pagina in un'altra finestra qualora la si visualizzi in un frame e lasciare nel frame in questione un testo alternativo al contenuto originale??

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ecco un esempio.
    codice:
    <head>
    ...
    <script type="text/javascript">
    if(top.location.href != self.location.href) {
      alert("ci sono frame: procedo con lo scambio");
      window.open(this.location.href);
      window.location.href = "pagina_alternativa.htm";
    }
    </script>
    <head>
    <body ...>
    ...
    Nota: se funziona commenta o togli la riga con l'alert
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it L'avatar di ric.cpp
    Registrato dal
    Sep 2004
    Messaggi
    171
    grazie per l'aiuto... ho risolto
    ciao

  6. #6
    Utente di HTML.it L'avatar di ric.cpp
    Registrato dal
    Sep 2004
    Messaggi
    171
    su un sito mi dice permesso negato per ottenere la proprietà Location.href... non c'è altro modo?

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non mi risulta che ci siano queste limitazioni. Attenzione alla sintassi: location e` un oggetto di window, quindi deve essere preceduto da un identificatore di finestra.
    Inoltre deve essere scritto minuscolo.

    Forse pero` il problema dipende dal fatto che le due pagine non sono dello stesso dominio. In tal caso puoi provare:
    codice:
    var fr = false;
    if(top.location) ; else fr=true;
    if(top.location.href != self.location.href) fr=true;
    if(fr) {
      alert("ci sono frame: procedo con lo scambio");
      window.open(this.location.href);
      window.location.href = "pagina_alternativa.htm";
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Utente di HTML.it L'avatar di ric.cpp
    Registrato dal
    Sep 2004
    Messaggi
    171
    ho incollato il codice che hai postato togliendo l'alert e cambiando la pagina alternativa ma non va

    si i frameset e la pagina non si trovano nello stesso dominio

    ho anche provato a mettere il codice dentro una funzione e a chiamarla con onload in body ma niente

    adesso mi da l'errore 'permesso negato per ottenere la proprietà window.sf'

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    L'alert sarebbe stato meglio lasciarlo: almeno ti dice se l'errore sta prima o dopo.

    Comunque l'errore che ti da` non e` compatibile con questo codice, per cui ti consiglio di postare qui il codice come da te implementato (fai copia-incolla).

    Ho anche visto un errore mio (bisogna scrivere
    window.open(self.location.href);
    ), ma non credo che sia quello il problema.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Per motivi di riservatezza e protezione non è possibile accedere alla href di una pagina appartenente ad un dominio diverso (la lettura della proprietà window.location.href genererebbe un errore di "accesso negato") conviene utilizzare la funzione typeof che in questo caso restituisce "unknown".
    codice:
       w = top.location; 
       if (typeof(w.href)=="unknown") {...
    Comunque non e' necessario testare la proprieta'... basta confrontare gli oggetti:
    codice:
    if(top!=self) {
      window.open(self.location.href);
      window.location.href = "pagina_alternativa.htm";
    }
    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

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 © 2024 vBulletin Solutions, Inc. All rights reserved.