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

    Errore script per apertura pop-up

    Salve ragassuoli...ho trovato qui sul forum da qualche parte il codice per verificare che una finestra pop-up sia stata effettivamente aperta.

    Dal basso della mia conoscenza in Javascript l'ho aggiunto ad un altro codice trovato nella rete...ottenendo questo..
    codice:
    <!--
    
    var popup_aperta = false;
    var newwindow = "";
    
    function check_aperta() { 
    if (popup_aperta) { alert("la popup e` stata aperta"); } else { alert ("la popup non e` stata aperta"); 
    } 
    }
    
    function popitup(url)
    {
    	if (!newwindow.closed && newwindow.location)
    	{
    		newwindow.location.href = url;
    	}
    	else
    	{
    		newwindow=window.open(url,'chat','height=200,width=150');
    		setTimeout('check_aperta()', 1000); 
    		
    	}
    	if (window.focus) {newwindow.focus()}
    	return false;
    }
    
    
    
    
    
    // -->
    Che richiamo con onload="return popitup('pagina.html')"

    Funziona tutto eh...però se la pop-up viene bloccata mi viene segnalato un'errore nella visualizzazione alla riga 32
    codice:
    if (window.focus) {newwindow.focus()} //newwindow è nullo o non è un oggetto
    Come posso risolvere? grazie a tutti in anticipo
    I hate to feel the Love beetwen us die...
    This is our last embrace...


    IndiSound.net - La musica italiana indipendente
    Bertuccia.com - Chat, Forum e Galleria Fotografica...

  2. #2
    Niente eh? per curiosità...
    I hate to feel the Love beetwen us die...
    This is our last embrace...


    IndiSound.net - La musica italiana indipendente
    Bertuccia.com - Chat, Forum e Galleria Fotografica...

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    C'e` qualche problema nella logica dello script, che pero` non dovrebbe influire sul funzionamento.
    Ad esempio la variabile popup_aperta non viene mai messa a true.

    Comunque la riga
    if (window.focus) {newwindow.focus()}
    puoi scriverla semplicemente come
    newwindow.focus();
    (non serve testare se ilfocus e` sula fienstra corrente; potrebbe anche essere su qualcos'altro).


    Pero` se il browser ti impedisce l'apertura della popup, quello che succede e` che tenti di dare il focus ad una stringa, quindi devi inserire un controllo se la fienstra esiste prima di darle il focus.

    Io farei cosi`:
    codice:
    var newwindow = "";
    
    function check_aperta() { 
      if (typeOf(newwindow)=='object' && !newwindow.closed) { 
        alert("la popup e` stata aperta"); 
      } else {
        alert ("la popup non e` stata aperta"); 
      } 
    }
    
    function popitup(url) {
      if (!newwindow.closed && newwindow.location) {
        newwindow.location.href = url;
      } else {
        newwindow=window. open(url,'chat','height=200,width=150');
        //setTimeout('check_aperta()', 1000); 
      }
      if (typeOf(newwindow)=='object' && !newwindow.closed) {
        newwindow.focus()
      }
      return false;
    }
    Ho qualche dubbio su cosa ritorna il typeOf di una finestra quando e` stata aperta. Eventualmente aggiungi un
    alert("tipo = " + typeOf(newwindow));
    prima del test, per verificarlo.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.