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

    vedere se una finestra popup ha i frame...

    Salve,

    è la prima volta che posto su questo forum!!!

    ho una richiesta un po' particolare:

    devo vedere se una finestra aperta da me in popup col classico comando javascript:

    newwindow=window.open(url);

    contenga dei frame al suo interno!!!

    Ho provato comandi come

    if(newwindow.frames.length!=0) alert("LA PAGINA CONTIENE FRAME")

    oppure

    if(newwindow.parent.frames.length!=0) alert("LA PAGINA CONTIENE FRAME")

    o ancora

    if(newwindow.NOMEFRAME) alert("LA PAGINA CONTIENE FRAME")
    (dove NOMEFRAME è il nome che ha il frame nell'html)

    Ma su IE6 non fungono!!! :master:

    Che fare????

    Saluti,

    Kristian0

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Io proverei con il nome, non con l'oggetto della finestra:

    var newwindow = window.open(URL, "nomefinestra", "...");

    if(window.nomefinestra.frames.length > 1) ...

    Nota che in una finestra il vettore frames ha almeno un elemento (quindi il confronto con zero non ha senso).
    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 pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Sono riuscito a farlo funzionare solo in questo modo, collaudato con IE6 e NN6
    codice:
    <%@ Language=VBScript %>
    <HTML>
    <HEAD>
    <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
    <SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
    <!--
    var w = null;
    function button1_onclick() {
    	w = window.open("pupup_frame.asp", "popup","width=300,height=300,");
    	window.setTimeout("ha_frames()", 0);
    }
    
    function ha_frames()
    {
    	alert(w.window.frames.length);
    }
    //-->
    </SCRIPT>
    </HEAD>
    <BODY>
    
    <h1>a.asp</h1>
    <INPUT type="button" value="Button" id=button1 name=button1 
    LANGUAGE=javascript onclick="return button1_onclick()">
    
    </BODY>
    </HTML>
    Pietro

  4. #4
    Originariamente inviato da pietro09
    Sono riuscito a farlo funzionare solo in questo modo, collaudato con IE6 e NN6
    codice:
    <%@ Language=VBScript %>
    <HTML>
    <HEAD>
    <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
    <SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
    <!--
    var w = null;
    function button1_onclick() {
    	w = window.open("pupup_frame.asp", "popup","width=300,height=300,");
    	window.setTimeout("ha_frames()", 0);
    }
    
    function ha_frames()
    {
    	alert(w.window.frames.length);
    }
    //-->
    </SCRIPT>
    </HEAD>
    <BODY>
    
    <h1>a.asp</h1>
    <INPUT type="button" value="Button" id=button1 name=button1 
    LANGUAGE=javascript onclick="return button1_onclick()">
    
    </BODY>
    </HTML>
    Non male come idea!!! :gren:

    Ma purtroppo la funzione
    alert(w.window.frames.length);

    mi ritorna sempre zero fisso...

    Uhm non sono sicuro di aver letto bene (era un sito in inglese) ma ho letto qualcosa su dei limiti del javascript in quanto non permette ad una pagina di un dominio qualsiasi (es: miosito.it) di accedere ai frame di un secondo dominio (es:tuosito.it)...

    Ho letto bene o non ho capito niente??? Perchè questo è proprio il mio caso!!!

    Saluti

    Kristian0

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    non permette ad una pagina di un dominio qualsiasi (es: miosito.it) di accedere ai frame di un secondo dominio
    Questa e' la regola fondamentale... alla base della sicurezza.

    Se cosi' non fosse sarebbe possibile modificare i contenuti delle pagine altrui... o monitorare la navigazione dell'utente

    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

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    dunque, tutto quello che dico è valido solo per l'esempio che ho fatto, con IE6 e NN6, windows 2000

    1) ho notato che dopo avere aperto il popup, alert(w.window.frames.length); restituisce sempre 0, ma funziona se il popup è già aperta,

    perciò mi funziona ripetendo l'istruzione w=window.open(.... ossia

    w = window.open("....;
    w = window.open("....;
    alert(w.window.frames.length);

    ma nom mi piace di certo

    prova a mettere window.setTimeout("ha_frames()", 1000);
    Pietro

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.