Domanda

Situazione: hai un .swf incorporato in una pagina html e quando fai clic su qualcosa nel file .swf, devi far apparire una finestra senza cromatura. Normalmente questo sarebbe abbastanza facile - ma considera Safari, che disabilita completamente tutte le funzionalità 'window.open' mentre il suo blocco popup è abilitato (fa un'eccezione se la funzione è attivata sul clic, ma non conta i clic in flash) . Come puoi creare qualcosa che degrada con garbo (offre un'esperienza alternativa e approssimativamente equivalente) per i browser che non eseguiranno window.open?

(nota: si tratta di AS3 e Safari 3 per PC o Mac di cui stiamo parlando, ma più in generale, qualsiasi browser che non supporta o rifiuta di consentire la funzione javascript window.open.)

È stato utile?

Soluzione

Se il file SWF viene caricato utilizzando wmode='opaque' o wmode='transparent', è possibile disporre del codice JavaScript di output SWF che creerebbe un <div> vuoto posizionato sopra l'area SWF. Che onclick potrebbe quindi gestire l'evento <=> e creare la finestra popup anziché il codice Flash.

Altri suggerimenti

l'overlay div era più complicato di quanto meritasse il progetto. Dai un'occhiata a code.google.com/p / popupfromflash per il codice che ho ideato.

Tenta di utilizzare ExternalInterface per impostare una funzione window.open, e se ciò fallisce (in particolare in Safari), richiama in flash e gli chiede di fare un navigToURL per far apparire la finestra normalmente (invece che senza cromless)

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