Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    74

    il browser non riconosce finestra già aperta-apertura multipla stessa finestra

    Ciao a tutti,
    ho una finestra che ne apre un'altra (chiamata win1) tramite click o invio sul pulsante (id=bt_apri)
    In pratica succede questo:
    - cliccando su bt_apri viene correttamente aperta win1
    - cliccando su bt_apri quando win1 è aperta e completamente visualizzata il browser ne rileva l'apertura e quindi la riapre nella stessa finestra
    -se invece faccio doppio click su bt_apri oppure premo ripetutamente il tasto di invio la finestra viene il n. di volte che io ho premuto il tasto
    ...non so veramente come risolvere il problema, ho provato a disattivare il pulsante di apertura non appena viene premuto, però apre comunque più finestre. E' come se il browser si accorgesse della finestra aperta solo dopo qualche secondo, però ho visto che l'utente tende a premere ripetutamente il tasto di invio se la finestra non si apre subito e il risultato è allucinante. Qualcuno riesce a darmi un consiglio?
    Grazie.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Consigli senza codice javascript, è come visitare un paziente dalla fotografia
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    74
    hai ragione..... sorry!! posto tutta la funzione, la riga incriminata è ovviamente quella relativa alla variabile win_archivio

    function apre_archivio(nome_file)
    {
    var str_anno='';//inizializzare la variabile altrimenti visualizza undefined
    var str_id_servizio='';//inizializzare la variabile altrimenti visualizza undefined
    var str_rif_data='';//inizializzare la variabile altrimenti visualizza undefined
    var str_id_tip_oggetto='';
    var str_id_record='';//serve per filtrare l'id corrente in fase di apertura dell'archivio

    //l'anno serve solo per la tabella avvisi e la tabella frasi perchè ogni anno cambiano
    if(document.getElementById('rif_anno'))
    {
    var sel_anno_opt=document.getElementById('rif_anno').o ptions;
    var anno=sel_anno_opt[sel_anno_opt.selectedIndex].value;
    anno=anno.substr(-2);
    str_anno="anno="+anno;
    }

    //solo nel caso in cui venga aperto l'archivio degli avvisi aggiunge anche il parametro
    //relativo all'id_servizio (per la query sulle testate che verrà eseguita in archivio_avvisi.php)
    if(nome_file=='archivio_avvisi.php' || nome_file.indexOf('report')!=-1)
    {
    var sel_servizio_opt=document.getElementById('rif_id_s ervizio').options;
    var id_servizio=sel_servizio_opt[sel_servizio_opt.selectedIndex].value;
    var sel_tip_oggetto_opt=document.getElementById('rif_i d_tip_oggetto').options;
    var id_tip_oggetto=sel_tip_oggetto_opt[sel_tip_oggetto_opt.selectedIndex].value;

    if(id_servizio!='')
    {
    str_id_servizio="&id_servizio="+id_servizio;
    }else{
    str_id_servizio='';
    }

    //solo nel caso in cui venga aperto il report di controllo mod/pag e sia selez.
    //la tipologia (fin o leg)
    if(id_tip_oggetto!='' && nome_file.indexOf('report_controllo_mod_pag')!=-1)
    {
    str_id_tip_oggetto="&id_tip_oggetto="+id_tip_ogget to;
    }else{
    str_id_tip_oggetto='';
    }

    var rif_data=data_mysql(document.getElementById('rif_d ata').value);
    str_rif_data="&rif_data="+rif_data;
    }

    /*
    controlla il nome del file archivio passato e filtra l'id inserito nella pagina ins_avvisi.php in modo tale da effettuare eventuali modifiche
    sul relativo id in modo piu' veloce. Sfrutta il parametro id_record che viene passato con get nel caso di modifica/eliminazione di record
    */
    switch (nome_file)
    {
    case "archivio_dett_inserzionista.php":
    if(document.getElementById('dba_id_dett_inserzioni sta').value !='')
    {
    str_id_record="&id_record="+document.getElementByI d('dba_id_dett_inserzionista').value;
    }else{
    str_id_record='';
    }
    break;

    case "archivio_frase.php":
    if(document.getElementById('dba_id_frase').value !='')
    {
    str_id_record="&id_record="+document.getElementByI d('dba_id_frase').value;
    }else{
    str_id_record='';
    }
    break;

    case "archivio_oggetto.php":
    if(document.getElementById('dba_id_oggetto').value !='')
    {
    str_id_record="&id_record="+document.getElementByI d('dba_id_oggetto').value;
    }else{
    str_id_record='';
    }
    break;
    }

    //IMPORTANTE: il primo parametro deve essere sempre preceduto dal ? altrimenti
    //visualizza errore: PAGINA NON TROVATA

    var win_archivio=window.open(nome_file+'?'+str_anno+st r_id_servizio+str_id_tip_oggetto+str_rif_data+str_ id_record, nome_file.replace(/.php/g/''), 'width=1200,height=600,menubar=0,status=1,scrollba rs=yes,toolbar=0,location=no,directories=0,resizab le=yes,chromeless=0,').focus();

    //document.getElementById('bt_archivio_frase').disab led=true;

    //setTimeout(function(win_archivio){},'5000');





    }

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Questo pezzo "nome_file.replace(/.php/g/'')" dovrebbe essere quello che nomina la popup verifica che non cambi (cioè che sia fisso), se cambia come ipotizzo dovrai rendere quel parametro fisso tipo 'popupfile' cosi non aprirà nuove popup ma aggiornerà sempre la stessa.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    74
    Perfetto...hai centrato il problema, adesso funziona tutto! Ho risolto così se dovesse servire a qualcuno:

    var nome_finestra= nome_file.replace(/.php/g/'');
    var win_archivio=window.open(nome_file+'?'+str_anno+st r_id_servizio+str_id_tip_oggetto+str_rif_data+str_ id_record,nome_finestra, 'width=1200,height=600,menubar=0,status=1,scrollba rs=yes,toolbar=0,location=no,directories=0,resizab le=yes,chromeless=0,').focus();

    Grazie mille!!!

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