Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: popup non funge

  1. #1

    popup non funge

    io ho un immagine gif in una pagina html dove c'e' questo script:

    [img]logo-aidm.gif[/img]


    nel codice c'e' :

    <SCRIPT Language="Javascript" type="text/javascript">
    <!--
    function apri(theURL,winName,features) {
    window.open(theURL,winName,features);
    return;
    }
    //-->
    </SCRIPT>


    perche' mi funziona su safari e su firefox ma no su internet explorer per MAC
    yah man...
    MY SITE
    MY SITE

  2. #2
    Non ho mai usato IE per Mac, ma posso dirti alcune cose su quel codice, giusto per "correggerlo".

    target="_self" non capisco a cosa serva, dato che la popup è sempre una nuova finestra e che fai ritornare un valore booleano false per non eseguire il codice in href.

    onclick e i vari tag scrivili tutti in minuscolo...così sono conformi agli standard.

    Il return alla fine della funzione non capisco a cosa serva...

    Poi controlla che nella pagina il codice del link non abbia dei punti in cui va a capo "forzatamente" (per capirci, che non sia stato premuto Invio all'interno della riga di codice del link).

    IE per Mac è un po' strano a volte...cmq ricordati che è un browser che ormai verrà abbandonato.
    Per il resto, spero che altri più esperti di me con IE per Mac ti possano aiutare.

  3. #3
    correggo:
    non funziona in nessun internet explorer.
    Qualcuno sa come si deve scrive questo codice per farlo funzionare su tutti i browser?
    mi sembra una domanda abbastaza semplice per il forum, dai che ci riusciamo.

    lo script soprascritto funziona ovunque ma no su internet explorer, proprio non funziona niente, ancziche aprirmi il popup mi riapre la index.
    lo script corretto e' questo...aleno spero

    tra i tag head :
    <SCRIPT Language="Javascript" type="text/javascript">
    <!--
    function apri(theURL,winName,features) {
    window.open(theURL,winName,features);
    return;
    }
    //-->
    </SCRIPT>


    nel body c'e':
    <table width="100%" border="0">
    <tr>
    <td height="504"><div align="center">[img]logo-aidm.gif[/img]</div></td>
    </tr>
    <tr>
    <td><div align="center" class="Stile1">sito ottimizzato per Macromedia Flash Player 7 </div></td>
    </tr>
    </table>


    non ci sono accapo forzati
    vi prego correggetemelo che manca solo questo per pubblicare il sito


    se volete provarlo e' in rete per prova a questo indirizzo
    http://www.aidmusic.com....cliccando sul marchio non funziona il popup solo su IE...anche per PC
    yah man...
    MY SITE
    MY SITE

  4. #4
    Mi sa che ho trovato...per prima cosa però, rimetti return false nell'onclick, dopo aver richiamato la funzione apri(), altrimenti il browser esegue l'istruzione nell'href (il #) e togli quel return nella funzione che non serve.

    Ed eccoci alla soluzione, che tanto per cambiare coinvolge sempre quella nullità di IE! Ho detto nullità perché IE non supporta i nomi delle finestre che contengono spazi!!!

    Nel tuo codice, passi alla funzione come nome per la finestra "accademia internazionale di musica"...che contiene 3 spazi! Non è un grosso problema, visto che cmq il nome della finestra non è visibile "all'esterno" ma viene solo utilizzato internamente dal codice, quindi puoi usare un nome come "NuovaFinestra", "Nuova", ecc...certo che IE cade anche sulle cose più stupide!!!

  5. #5
    ti faccio sapere, dopo pranzo provo tutto
    yah man...
    MY SITE
    MY SITE

  6. #6
    che tu sappia si puo' anche far aprire il popup in una posizione centrale dello schermo?
    yah man...
    MY SITE
    MY SITE

  7. #7
    Si può, ma devi necessariamente inserire il codice JavaScript nella popup stessa e non ti garantisco che sia compatibile con tutti i browser (l'ho sempre usato solo con IE).

    Conoscendo le dimensioni della popup (e tu le conosci perché gliele imposti attraverso la tua funzione apri()), devi prima di tutto fare un detect della risoluzione del monitor dell'utente. Poi devi impostare il riposizionamento della popup assegnando le coordinate che sono entrambe la metà della differenza tra le dimensioni della risoluzione del monitor e quelle della popup.

    In dettaglio, eccoti il codice da inserire nella sezione head della popup:

    codice:
    <script type="text/javascript">
    <!--
    var h = (screen.width - 268) / 2;
    var v = (screen.height - 126) / 2;
    window.moveTo(h,v);
    -->
    </script>
    Alcune precisazioni che possono esserti utili. width e height, usate come proprietà dell'oggetto screen, restituiscono le "dimensioni" della risoluzione del monitor. Tuttavia, se tu volessi "escludere" dalle dimensioni complessive lo spazio occupato dalla barra delle applicazioni e da altre barre "supplementari" eventualmente presenti sul desktop, ti basta sostituire width e height con availWidth e availHeight. Poi come avrai visto ho sottratto a screen.width una misura di 268 (nel tuo codice la popup è larga 267), in modo da non avere risultati in "pixel con parte decimale" in una divisione per 2. Quindi, se puoi, modifica il valore di width che passi alla tua funzione. Altrimenti non ti va in errore nulla, ma penso che JavaScript arrotonderà il risultato sfalsandolo di 1px. Infine, l'istruzione window.moveTo() è eseguita appena la popup viene aperta e "riposiziona" la finesta sul monitor in una posizione centrale (si noterà inevitabilmente lo "spostamento" della finestra dalla posizione in cui si apre a quella in cui viene riposizionata).

  8. #8
    su safari non funziona, sugli altri me lo mette sempre con l'angolo sinistro superiore al centro dello schermo, anche se cambio i parametri lo mette sempre con l'angolo sinistro superiore al centro dello schermo.


    quindi peggio di prima perche' scompare parte della popup dell'lato destra
    yah man...
    MY SITE
    MY SITE

  9. #9
    Strano...perché moveTo() non è un metodo dell'oggetto window proprietario, e nemmeno l'oggetto screen ha particolari "controindicazioni". Ci sarebbe un'alternativa, ma devi per forza modificare la tua funzione di apertura della popup.

    codice:
    <script type="text/javascript"> 
    <!-- 
    function apri(theURL,winName,mnbar,tlbar,lcbar,stbar,drbar,scbar,rsz,wdt,hgt) { 
    var lft = (screen.width - 268) / 2;
    var tp = (screen.height - 126) / 2;
    window.open(theURL,winName,"menubar=" + mnbar + ",toolbar=" + tlbar
    + ",location=" + lcbar + ",status=" + stbar + ",directories=" + drbar
    + ",scrollbars=" + scbar + ",resizable=" + rsz + ",width=" + wdt
    + ",height=" + hgt + ",left=" + lft + ",top=" + tp + ",screenX=" +
    lft + ",screenY=" + tp); 
    } 
    --> 
    </script>
    Ho inserito dei ritorni a capo in mezzo alla funzione, altrimenti veniva fuori una riga che non finiva più.

    Quando richiami la funzione nel link e le passi i parametri, non devi più passarle la stringa del parametro "features", ma una serie di valori booleani (sempre in forma numerica!) separati da virgole. Se passi 1, la caratteristica della finestra sarà visibile, se passi 0 non lo sarà. Fanno eccezione gli ultimi 2 valori, ovvero width e height che vanno passati ovviamente in pixel.

    In dettaglio, i parametri che la funzione accetta sono, nell'ordine:

    theURL: l'URI della pagina.
    winName: il nome interno della finestra.
    mnbar: la barra dei menu (menubar).
    tlbar: la barra degli strumenti (toolbar).
    lcbar: la barra dell'indirizzo (location).
    stbar: la barra di stato (status).
    drbar: la barra dei collegamenti (directories).
    scbar: le barre di scorrimento (scrollbars).
    rsz: finestra ridimensionabile (resizable).
    wdt: larghezza (width).
    hgt: altezza (height).

    In questo modo, passando una serie di 0 o 1, puoi stabilire con precisione le caratteristiche di tutte le finestre popup che hai.
    Inoltre, la funzione si calcola gli scostamenti dai bordi superiore e sinistro dello schermo con le variabili lft e tp. Come vedi sono state calcolate nello stesso modo del codice che avevi inserito nella popup. Quindi, quando viene richiamato window.open(), vengono aggiunti 4 parametri che sono left e top (per IE) e screenX e screenY (per NN e penso altri browser simili). left e screenX stabiliscono lo scostamento dal margine sinistro dello schermo, top e screenY quello dal margine superiore. Quindi non hai più bisogno del codice nella head della popup, perché tutto viene gestito tramite la funzione. Se non dovesse fuzionarti così non so più che farci...a me il metodo che ti avevo suggerito funziona con IE...con gli altri browser non lo so. non ci ho mai provato perché l'ho usato in un'applicazione web-based che gira da un CD e richiede espressamente IE.

  10. #10
    su safari funziona invece su firefox e internet explorer no


    che dilemma
    yah man...
    MY SITE
    MY SITE

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.