Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Dialog Box

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    371

    Dialog Box

    Salve raga ho un probelma con una dialog box
    lo script funziona perfettamente ma io vorrei implementare un'altra opzione
    ossia oltre a passare "title,message,type,autohide" vorrei anche passare il redirect della pagina nel momento in cui viene chiuso il messaggio che compare....
    ho provato passaddo una variabile alla funzione "hideDialog" e aggiungendo un swich case per la stessa ma o smette di funzionare il tutto e funziona il redirect o funzina il messaggio e non il redirect
    vi posto il codice dello script.
    potete aiutarmi....grazie
    // global variables //
    var TIMER = 5;
    var SPEED = 10;
    var WRAPPER = 'content1';

    // calculate the current window width //
    function pageWidth() {
    return window.innerWidth != null ? window.innerWidth : document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;
    }

    // calculate the current window height //
    function pageHeight() {
    return window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null;
    }

    // calculate the current window vertical offset //
    function topPosition() {
    return typeof window.pageYOffset != 'undefined' ? window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0;
    }

    // calculate the position starting at the left of the window //
    function leftPosition() {
    return typeof window.pageXOffset != 'undefined' ? window.pageXOffset : document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ? document.body.scrollLeft : 0;
    }

    // build/show the dialog box, populate the data and call the fadeDialog function //
    function showDialog(title,message,type,redir,autohide) {
    if(!type) {
    type = 'error';
    }
    var dialog;
    var dialogheader;
    var dialogclose;
    var dialogtitle;
    var dialogcontent1;
    var dialogmask;
    if(!document.getElementById('dialog')) {
    dialog = document.createElement('div');
    dialog.id = 'dialog';
    dialogheader = document.createElement('div');
    dialogheader.id = 'dialog-header';
    dialogtitle = document.createElement('div');
    dialogtitle.id = 'dialog-title';
    dialogclose = document.createElement('div');
    dialogclose.id = 'dialog-close'
    dialogcontent1 = document.createElement('div');
    dialogcontent1.id = 'dialog-content1';
    dialogmask = document.createElement('div');
    dialogmask.id = 'dialog-mask';
    document.body.appendChild(dialogmask);
    document.body.appendChild(dialog);
    dialog.appendChild(dialogheader);
    dialogheader.appendChild(dialogtitle);
    dialogheader.appendChild(dialogclose);
    dialog.appendChild(dialogcontent1);
    dialogclose.setAttribute('onclick', 'hideDialog(' + redir + ');');
    dialogclose.onclick = hideDialog;
    } else {
    dialog = document.getElementById('dialog');
    dialogheader = document.getElementById('dialog-header');
    dialogtitle = document.getElementById('dialog-title');
    dialogclose = document.getElementById('dialog-close');
    dialogcontent1 = document.getElementById('dialog-content1');
    dialogmask = document.getElementById('dialog-mask');
    dialogmask.style.visibility = "visible";
    dialog.style.visibility = "visible";
    }
    dialog.style.opacity = .00;
    dialog.style.filter = 'alpha(opacity=0)';
    dialog.alpha = 0;
    var width = pageWidth();
    var height = pageHeight();
    var left = leftPosition();
    var top = topPosition();
    var dialogwidth = dialog.offsetWidth;
    var dialogheight = dialog.offsetHeight;
    var topposition = top + (height / 3) - (dialogheight / 2);
    var leftposition = left + (width / 2) - (dialogwidth / 2);
    dialog.style.top = topposition + "px";
    dialog.style.left = leftposition + "px";
    dialogheader.className = type + "header";
    dialogtitle.innerHTML = title;
    dialogcontent1.className = type;
    dialogcontent1.innerHTML = message;
    var content1 = document.getElementById(WRAPPER);
    dialogmask.style.height = content1.offsetHeight + 'px';
    dialog.timer = setInterval("fadeDialog(1)", TIMER);
    if(autohide) {
    dialogclose.style.visibility = "hidden";
    window.setTimeout("hideDialog()", (autohide * 1000));
    } else {
    dialogclose.style.visibility = "visible";
    }
    }

    // hide the dialog box //
    function hideDialog(red) {

    var dialog = document.getElementById('dialog');
    clearInterval(dialog.timer);
    dialog.timer = setInterval("fadeDialog(0)", TIMER);
    switch (red) {
    case 1:
    javascript: location.href = 'Default.asp';
    break;
    case 2:
    javascript: location.href = 'NewUser.asp';
    break;
    default:
    javascript: history.back();
    break;
    }
    }

    // fade-in the dialog box //
    function fadeDialog(flag) {
    if(flag == null) {
    flag = 1;
    }
    var dialog = document.getElementById('dialog');
    var value;
    if(flag == 1) {
    value = dialog.alpha + SPEED;
    } else {
    value = dialog.alpha - SPEED;
    }
    dialog.alpha = value;
    dialog.style.opacity = (value / 100);
    dialog.style.filter = 'alpha(opacity=' + value + ')';
    if(value >= 99) {
    clearInterval(dialog.timer);
    dialog.timer = null;
    } else if(value <= 1) {
    dialog.style.visibility = "hidden";
    document.getElementById('dialog-mask').style.visibility = "hidden";
    clearInterval(dialog.timer);
    }
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    371
    in questo modo sembrava avessi risolto il tutto
    visto che con FF funziona tutto perfettamente mentre con EX
    il tasto di chiusura del box non funziona piu........ perche ?????

    // global variables //
    var TIMER = 5;
    var SPEED = 10;
    var WRAPPER = 'content1';

    // calculate the current window width //
    function pageWidth() {
    return window.innerWidth != null ? window.innerWidth : document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;
    }

    // calculate the current window height //
    function pageHeight() {
    return window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null;
    }

    // calculate the current window vertical offset //
    function topPosition() {
    return typeof window.pageYOffset != 'undefined' ? window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0;
    }

    // calculate the position starting at the left of the window //
    function leftPosition() {
    return typeof window.pageXOffset != 'undefined' ? window.pageXOffset : document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ? document.body.scrollLeft : 0;
    }

    // build/show the dialog box, populate the data and call the fadeDialog function //
    function showDialog(title,message,type,redir,autohide) {
    if(!type) {
    type = 'error';
    }
    var dialog;
    var dialogheader;
    var dialogclose;
    var dialogtitle;
    var dialogcontent1;
    var dialogmask;
    if(!document.getElementById('dialog')) {
    dialog = document.createElement('div');
    dialog.id = 'dialog';
    dialogheader = document.createElement('div');
    dialogheader.id = 'dialog-header';
    dialogtitle = document.createElement('div');
    dialogtitle.id = 'dialog-title';
    dialogclose = document.createElement('div');
    dialogclose.id = 'dialog-close'
    dialogcontent1 = document.createElement('div');
    dialogcontent1.id = 'dialog-content1';
    dialogmask = document.createElement('div');
    dialogmask.id = 'dialog-mask';
    document.body.appendChild(dialogmask);
    document.body.appendChild(dialog);
    dialog.appendChild(dialogheader);
    dialogheader.appendChild(dialogtitle);
    dialogheader.appendChild(dialogclose);
    dialog.appendChild(dialogcontent1);
    dialogclose.setAttribute('onclick', 'hideDialog('+redir+');');
    dialogclose = document.getElementById('dialog-close');
    } else {
    dialog = document.getElementById('dialog');
    dialogheader = document.getElementById('dialog-header');
    dialogtitle = document.getElementById('dialog-title');
    dialogclose = document.getElementById('dialog-close');
    dialogcontent1 = document.getElementById('dialog-content1');
    dialogmask = document.getElementById('dialog-mask');
    dialogmask.style.visibility = "visible";
    dialog.style.visibility = "visible";
    }
    dialog.style.opacity = .00;
    dialog.style.filter = 'alpha(opacity=0)';
    dialog.alpha = 0;
    var width = pageWidth();
    var height = pageHeight();
    var left = leftPosition();
    var top = topPosition();
    var dialogwidth = dialog.offsetWidth;
    var dialogheight = dialog.offsetHeight;
    var topposition = top + (height / 3) - (dialogheight / 2);
    var leftposition = left + (width / 2) - (dialogwidth / 2);
    dialog.style.top = topposition + "px";
    dialog.style.left = leftposition + "px";
    dialogheader.className = type + "header";
    dialogtitle.innerHTML = title;
    dialogcontent1.className = type;
    dialogcontent1.innerHTML = message;
    var content1 = document.getElementById(WRAPPER);
    dialogmask.style.height = content1.offsetHeight + 'px';
    dialog.timer = setInterval("fadeDialog(1)", TIMER);
    if(autohide) {
    dialogclose.style.visibility = "hidden";
    window.setTimeout("hideDialog()", (autohide * 1000));
    } else {
    dialogclose.style.visibility = "visible";
    }
    }

    // hide the dialog box //
    function hideDialog(red) {
    //alert(red);
    var dialog = document.getElementById('dialog');
    clearInterval(dialog.timer);
    dialog.timer = setInterval("fadeDialog(0)", TIMER);
    switch (red) {
    case 1:
    javascript: location.href = 'Default.asp';
    break;
    case 2:
    javascript: location.href = 'NewUser.asp';
    break;
    case 3:
    javascript: location.href = 'Login.asp';
    break;
    default:
    javascript: history.back();
    break;
    }
    }

    // fade-in the dialog box //
    function fadeDialog(flag) {
    if(flag == null) {
    flag = 1;
    }
    var dialog = document.getElementById('dialog');
    var value;
    if(flag == 1) {
    value = dialog.alpha + SPEED;
    } else {
    value = dialog.alpha - SPEED;
    }
    dialog.alpha = value;
    dialog.style.opacity = (value / 100);
    dialog.style.filter = 'alpha(opacity=' + value + ')';
    if(value >= 99) {
    clearInterval(dialog.timer);
    dialog.timer = null;
    } else if(value <= 1) {
    dialog.style.visibility = "hidden";
    document.getElementById('dialog-mask').style.visibility = "hidden";
    clearInterval(dialog.timer);
    }
    }

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prova a cambiare questa riga:
    dialogclose.setAttribute('onclick', 'hideDialog('+redir+');');
    con questa:
    dialogclose.onclick=function(){hideDialog(redir);} ;


    P.S. nello swirch il javascript è inutile.
    switch (red) {
    case 1:
    location.href = 'Default.asp';
    break;
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    371
    Grazie
    PS:javascript tolto OK
    ma per la funzione non va........ :
    l'unico modo in cui funziona meglio è

    dialogclose.setAttribute('onclick', 'hideDialog('+redir+');');
    dialogclose.click = document.getElementById('dialog-close');

    con FF tutto ok ma EX non chiude il box
    con la tua invece riesco a chiudere il box ma non mi richiama la funzione 'hideDialog'


  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    371
    Ossia non è che la tua non funzioni....ma fa + o meno la stessa cosa con EX resta il div Piantato e non si chiude.

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prova a mettere un link alla pagina pubblica.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    371
    scusa ma che sign mettere il link....
    cmq ho visto che funzionano entrambi sia la tua soluzione che la mia
    ho provato con un'altro pc e cosa strana ma funziona tutto ok.....
    anche se hanno installate le stesse versioni di EX....
    credo sia un bug dello stesso provo a reinstallarlo.....

    Grazie

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.