Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Opzioni di window.open

  1. #1

    Opzioni di window.open

    Salve, ho scaricato uno script da HTML.it per aprire delle popup a centro pagina... questo è il codice della funzione che esegue la funzionalità:

    codice:
    function openWindow(windowURL, options) {
    
    	var args = '';
    
    	if (typeof(options) == 'undefined') { var options = new Object(); }
    	if (typeof(options.name) == 'undefined') { options.name = 'win' + Math.round(Math.random()*100000); }
    
    	if (typeof(options.height) != 'undefined' && typeof(options.fullscreen) == 'undefined') {
    		args += "height=" + options.height + ",";
    	}
    
    	if (typeof(options.width) != 'undefined' && typeof(options.fullscreen) == 'undefined') {
    		args += "width=" + options.width + ",";
    	}
    
    	if (typeof(options.fullscreen) != 'undefined') {
    		args += "width=" + screen.availWidth + ",";
    		args += "height=" + screen.availHeight + ",";
    	}
    
    	if (typeof(options.center) == 'undefined') {
    		options.x = 0;
    		options.y = 0;
    		args += "screenx=" + options.x + ",";
    		args += "screeny=" + options.y + ",";
    		args += "left=" + options.x + ",";
    		args += "top=" + options.y + ",";
    	}
    
    	if (typeof(options.center) != 'undefined' && typeof(options.fullscreen) == 'undefined') {
    		options.y=Math.floor((screen.availHeight-(options.height || screen.height))/2)-(screen.height-screen.availHeight);
    		options.x=Math.floor((screen.availWidth-(options.width || screen.width))/2)-(screen.width-screen.availWidth);
    		args += "screenx=" + options.x + ",";
    		args += "screeny=" + options.y + ",";
    		args += "left=" + options.x + ",";
    		args += "top=" + options.y + ",";
    	}
    
    	if (typeof(options.scrollbars) != 'undefined') { args += "scrollbars=1,"; }
    	if (typeof(options.menubar) != 'undefined') { args += "menubar=1,"; }
    	if (typeof(options.locationbar) != 'undefined') { args += "location=1,"; }
    	if (typeof(options.resizable) != 'undefined') { args += "resizable=0,"; }
    
    	var win = window.open(windowURL, options.name, args);
    	return false;
    
    }
    Richiamando la funzione con un evento di questo tipo:

    codice:
    onclick="return openWindow('image/paesaggio.jpg', {width:425,height:284,center:true})"
    effettivamente la finestra si apre al centro come promesso... però ho un problema: benchè io passi alla funzione l'esatte dimensioni dell'immagine ottengo come risultato una finestra dove intorno all'immagine c'è del bianco, mentre io vorrei che la finestra contornasse esattamente l'immagine, senza bianco e senza niente altro.

    Siccome (come avrete capito ) non sono esperto di JS, adesso non so quale opzione serve al mio scopo ed anche se la sapessi non saprei dove mettere le mani nella funzione!!!

    Qualcuno mi può aiutare?

    Grazie Felix
    Il mondo è diviso in 10 gruppi di persone... chi capisce il binario e chi no!

    http://www.pratesi.net

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    La presenza del "bianco" (per meglio dire margine ) e' dovuta al funzionamento di default del browser, se vuoi modificare questo comportamento devi usare il CSS e quindi non puoi mettere una semplice immagine nella finestra, deve esservi una vera pagina html nella quale poter impostare il margine a 0.

    Modifica questa riga:

    var win = window.open(windowURL, options.name, args);

    cosi':

    var win = window.open('', options.name, args);
    win.document.write('<body style="margin:0;">[img]'+windowUrl+'[/img]</body>');
    win.document.close();

    ciao

    ps: ovviamente in questo modo lo script diventa utilizzabile solo per aprire immagini...
    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

  3. #3
    Originariamente inviato da br1
    La presenza del "bianco" (per meglio dire margine ) e' dovuta al funzionamento di default del browser, se vuoi modificare questo comportamento devi usare il CSS e quindi non puoi mettere una semplice immagine nella finestra, deve esservi una vera pagina html nella quale poter impostare il margine a 0.

    Modifica questa riga:

    var win = window.open(windowURL, options.name, args);

    cosi':

    var win = window.open('', options.name, args);
    win.document.write('<body style="margin:0;">[img]'+windowUrl+'[/img]</body>');
    win.document.close();

    ciao

    ps: ovviamente in questo modo lo script diventa utilizzabile solo per aprire immagini...
    Ok... grazie mille per la spiegazione... magari faccio una pagina PHP con l'aggiunta degli stili opportuni per il body e richiamo quella passandogli il nome dell'immgine!

    Ciao
    Il mondo è diviso in 10 gruppi di persone... chi capisce il binario e chi no!

    http://www.pratesi.net

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.