Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]detekcja javascript i flash
Forum PHP.pl > Forum > Przedszkole
shreker
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.

  1. class getFlashJSInfo
  2. {
  3. private $isCookiePut;
  4.  
  5. function printFlashHTML()
  6. {
  7. 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">
  8. <PARAM NAME="quality" VALUE="high">
  9. <PARAM NAME="Loop" VALUE="true">
  10. <PARAM NAME="play" VALUE="true">
  11. <script language="JavaScript">
  12. '.$this->printJSCookieCreator().'
  13. if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"])
  14. {
  15. createCookie(\'isFlash\', \'yes\', \'100\');
  16. }
  17. else
  18. {
  19. createCookie(\'isFlash\', \'no\', \'100\');
  20. }
  21. </script>
  22. </OBJECT>';
  23. $this->isCookiePut = true;
  24. }
  25.  
  26. function checkJavaFlashCookie()
  27. {
  28. if(!isset($_COOKIE['isFlash']))
  29. $_COOKIE['isFlash'] = '';
  30. if($this->isCookiePut == false)
  31. {
  32. echo $this->printJSCookieCreator();
  33. }
  34. return ($_COOKIE['isFlash'] == 'yes');
  35. }
  36.  
  37. function printJSCookieCreator()
  38. {
  39. return 'function createCookie(name,value,days)
  40. {
  41. if (days)
  42. {
  43. var date = new Date();
  44. date.setTime(date.getTime()+(days*24*60*60*1000));
  45. var expires = "; expires="+date.toGMTString();
  46. }
  47. else var expires = "";
  48. document.cookie = name+"="+value+expires+"; path=/";
  49. }';
  50. }
  51. }
  52.  
  53. $userInfo = new getFlashJSInfo();
  54. $userInfo->printFlashHTML();
  55. $cookie = $userInfo->checkJavaFlashCookie();
  56. // check for javascript
  57. if($cookie == null)
  58. {
  59. echo 'no js';
  60. }
  61. else
  62. {
  63. echo 'js ok';
  64. }
  65. // check for flash
  66. switch ($cookie)
  67. {
  68. case true:
  69. echo 'flash ok';
  70. break;
  71. case false:
  72. echo 'no flash';
  73. break;
  74. }
Niktoś
Dziwie się ,że to wogóle działa,taki mix języków jest rzadko spotykany.
-shreker-
może i mix, ale ważne że działa, jedynie przy IE jest problem. da sie to poprawić czy nie ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.