Tutorial 01 - Instalação do Visual Studio 2008 beta 2 Tutorial 02 - Instalação da Base de Dados AdventureWorks
Set 18

Flash

Nas últimas versões do Internet Explorer (6 e 7), os flashs necessitam de ser activados antes de poderem ser usados. Este problema ocorre porque a Microsoft teve de alterar o funcionamento dos browsers para respeitar uma patente denominada de EOLAS.

A última versão do Opera (9) também foi alterada para respeitar a mesma patente.

Para podermos contornar este pequeno problema, tem de utilizar um pequeno “workaround” para enganar o browser. :)


 

O procedimento não é muito complicado, baseia-se num ficheiro javascript com duas funções que devem ser chamadas, uma antes da declaração do objecto flash e outra depois.

O ficheiro javascript vai conter o seguinte código:

IEEOLASFIX.js

//IEEOLASFIX para fixar o click to activate do flash

var bo_ns_id = 0;

function startIeFix(){

if(isIE()){

document.write(‘<noscript id=”bo_ns_id_’ + bo_ns_id + ‘”>’);

}

}

function endIeFix(){

if(isIE()){

var theObject = document.getElementById(“bo_ns_id_” + bo_ns_id++);

var theNoScript = theObject.innerHTML;

document.write(theNoScript);

}

}

function isIE(){

var strBrowser = navigator.userAgent.toLowerCase();

if(strBrowser.indexOf(“msie”) > -1 && strBrowser.indexOf(“mac”) < 0){

return true;

}else{

return false;

}

}

Depois, de termos adicionado o ficheiro anterior ao projecto, necessitamos de referência-lo em todas as páginas, se estivermos a utilizar masterpages, aí será o sitio ideal para o declararmos, através do código seguinte introduzido no header da página:

<script type=”text/javascript” language=”JavaScript” src=”<PASTA DO FICHEIRO>/IEEOLASFIX.js”>

 

Agora, em todas as declarações de objectos flash, temos de invocar as funções javascript da seguinte forma:

<script type=”text/javascript”>startIeFix();</script>

<object classid=”clsid:D27CDB6E-AE6D-11cf-96B8-444553540000″ codebase=”http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0″

width=”151″ height=”145″ viewastext>

<param name=”Movie” value=”<PASTA DO FLASH>/flash.swf”>

<param name=”quality” value=”high”>

<param name=”wmode” value=”transparent”>

<embed wmode=”transparent” src=”<PASTA DO FLASH>/flash.swf”

quality=”high” pluginspage=”http://www.macromedia.com/go/getflashplayer” type=”application/x-shockwave-flash”

width=”100″ height=”100″>

</embed>

</object>

<!–[if gte IE 6]></noscript><![endif]–>

<script type=”text/javascript”>endIeFix();</script>

 

Desta forma temos o problema resolvido. Agora o flash aparece activado logo de inicio e pronto a ser usado, melhorando em muito a experiência de navegação web.

Mais um problema resolvido! Se tiverem dúvidas ou outras formas de resolver o problema deixem o vosso comentário. São muito bem vindos. :)



publicado por NC Etiquetas:

Uma Resposta a “Problema – Flash + IE “Click to activate and use this control””

  1. neverson Diz:

    Eu estou com um problema no seguinte , Tenho uma pagina que pega a referencia do usuario (http_referer) so que quando o link pra essa pagina é um .swf (banner flash) no IE , nao aprece a pagina e sim o caminho deste .swf ..Com monzila etc funciona.

    http://www.codescene.com/2005/12/flash-ie-and-the-http-referer.php

Deixar uma resposta