Domanda

ho un Facebook Like pulsante (edizione iFrame) che è sovrapposto sulla cima di un'applicazione Flash completa del browser. Il pulsante simile è collegato a come immagini separate all'interno dell'applicazione, e quando vengono rappresentati ciascuno nuove immagini, il pulsante come viene aggiornato con i dati utilizzando ExternalInterface.

I come pulsante dissolvenze e per ogni nuova immagine utilizzando JQuery fadeIn () / fadeOut (), ancora essendo chiamato con ExternalInterface.

Il problema che sto avendo è che su Windows, questo non sembra voler lavorare, in Firefox specificamente ...

CSS:

        html {
            height: 100%;
            overflow: hidden;
            min-width: 800px;
            min-height: 600px;
        }
        #flashContent {
            position: absolute;
            top: 0px;
            left: 0px;
            height: 100%;
            width: 100%;
            z-index: 1;
        }
        body {
            margin: 0;
            padding: 0;
            background-color: #000000;
        }
        #fb-like {
            position: absolute;
            bottom: 32px;
            left: 510px;
            width: 280px;
            z-index: 9999;
            display: none;
        }

fb-like è il div contenente l'iFrame, e di indice z è 9999 solo per assicurarsi che sia sempre in primo piano.

Questa è la JS utilizzati:

<script type="text/javascript">

    var isVisible = false;  

    function showLikeButton( visible ){         

        if( visible == true )
        {
            $('#fb-like').fadeIn( 'slow' );

            isVisible = true;

        }
        else if ( isVisible )
        {
            $('#fb-like').fadeOut( 'slow' );

            isVisible = false;

        }
    }

    var begOfUrl = "http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fmywebsite.com%2fdirectory";
    var endOfUrl = "&amp;layout=button_count&amp;show_faces=false&amp;width=150&amp;action=like&amp;colorscheme=dark&amp;height=21";

    function sendIdToLikeButton( title, id ){                   
        $( '#facebook-like' ).attr( 'src', begOfUrl + "%3Fid=" + id + endOfUrl );
    }

</script>

in cui il metodo sendIdToLikeButton sta prendendo l'ID della foto inviata da Flash utilizzando ExternalInterface per ricreare l'attributo src del iFrame.

E, naturalmente, in quanto questo è un applicazione Flash, ecco il minimo HTML:

<body>

<div id="fb-like">
        <iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fnfb.designaxiom.com/build13&amp;layout=button_count&amp;show_faces=false&amp;width=150&amp;action=like&amp;colorscheme=dark&amp;height=21" scrolling="no" frameborder="0" style="position: absolute; border:none; overflow:hidden; width:300px; height:40px;" allowTransparency="true" id="facebook-like"></iframe>
    </div>
    <div id="flashContent">
        <a href="http://www.adobe.com/go/getflashplayer">
            <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
        </a>
    </div>
</body>

Ancora una volta, questo funziona ovunque, tranne che per Firefox in Windows, e non sono sicuro di cosa fare al riguardo. Sto assumendo che si tratta di un errore nel CSS o da qualche parte Javascript.

Ogni aiuto è molto apprezzato.

Grazie in anticipo.

Grammatica

È stato utile?

Soluzione

Alla fine ho capito questo dopo un paio di settimane di avanti e indietro. Come si è scoperto il problema era con l'iframe di essere immessi sopra la parte superiore del contenuto Flash.

Questo è stato risolto con l'aggiunta di un parametro alla chiamata SWFObject - impostazione wmode a trasparente:

        var params = {};
        params.bgcolor = "#000000";
        params.allowfullscreen = "true";
        params.allowscriptaccess = "true";
        params.wmode = "transparent";

        var attributes = { id: "nfb", name:"nfb" };
        var swfUrl = "Runner.swf";

        swfobject.embedSWF( swfUrl, "flashContent", "100%", "100%", "10.0.0", false, flashvars, params, attributes );

Impostazione della wmode a trasparente consentito per il "trasparente" iframe da posizionare sopra la parte superiore della applicazione in tutti i browser.

Quindi, a quanto pare questo non è stato un problema con il tasto facebook a tutti come, ma con iframe e Flash. Naturalmente se non si utilizza SWFObject per visualizzare i file SWF, il wmode è un parametro che può essere impostato nelle Proprietà Pubblica in Flash quando si pubblica i file SWF.

Saluti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top