detekcja javascript i flash

0

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)
    { 
    	echo 'no js';
    }
    else
    { 
    	echo 'js ok';
    }
    // check for flash 
    switch ($cookie)
    {
    	case true: 
            echo 'flash ok';
    	   break;
    	case false: 
            echo 'no flash';
    	   break;
    }  
0

Ten kod zdaje się z muzeum prehistorii?

Użyj biblioteki SWFObject.

ps. wykrywanie JS w php? i zapisywanie tego do ciasteczek? 1) poroniony pomysł 2) zadziała dopiero za drugim wywołaniem Twojej strony!

omfg, funkcja printJSCookieCreator zabija o.O JAKI CHORY UMYSŁ STWORZYŁ CAŁY TEN KOD?!

0

kod może i stary, ale potrzebuję po prostu zapisać wyniki do zmiennych w php i dalej przetworzyć. da sie to poprawić czy nie?

0

Tego się nie poprawia, to trzeba napisać od nowa. A tego mi się nie chce robić, bo mi się zwyczajnie nie chce robić całości i póki co nie widzę w tym sensu.

Możesz mi wyjaśnić po co Ci po stronie serwera info o obsłudze flasha i js?

1 użytkowników online, w tym zalogowanych: 0, gości: 1