Witam, mam problem ze skryptem detekcji javascript i flash. W Firefoxie i Operze działa bez problemów natomiast po uruchomieniu w IE pokazuje cały czas że strona jest ładowana (przy okazji blokując inne skrypty javascript). Gdzie jest problem.
class getFlashJSInfo
{
private $isCookiePut;
function printFlashHTML()
{
echo '<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" CODEBASE="http://active.macromedia.com/flash/cabs/swflash.cab#version=3,0,0,11" WIDTH="1" HEIGHT="1" NAME="sw" ID="sw"> <PARAM NAME="quality" VALUE="high">
<PARAM NAME="Loop" VALUE="true">
<PARAM NAME="play" VALUE="true">
<script language="JavaScript">
'.$this->printJSCookieCreator().'
if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"])
{
createCookie(\'isFlash\', \'yes\', \'100\');
}
else
{
createCookie(\'isFlash\', \'no\', \'100\');
}
</script>
</OBJECT>';
$this->isCookiePut = true;
}
function checkJavaFlashCookie()
{
if(!isset($_COOKIE['isFlash'])) $_COOKIE['isFlash'] = '';
if($this->isCookiePut == false)
{
echo $this->printJSCookieCreator(); }
return ($_COOKIE['isFlash'] == 'yes');
}
function printJSCookieCreator()
{
return 'function createCookie(name,value,days)
{
if (days)
{
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}';
}
}
$userInfo = new getFlashJSInfo();
$userInfo->printFlashHTML();
$cookie = $userInfo->checkJavaFlashCookie();
// check for javascript
if($cookie == null)
{
}
else
{
}
// check for flash
switch ($cookie)
{
case true:
break;
case false:
break;
}