1. 삽입은 불법입니다
<embed> 태그는 Netscape의 전용 태그입니다. <embed> 태그는 HTML3.2, HTML4.0부터 XHTML1.0까지 널리 사용되지만 W3C에서는 이 태그를 포함하지 않았습니다. <embed> 태그를 사용하는 페이지는 W3C 유효성 검사를 통과하지 못합니다.
2. 객체를 사용해야 합니다
W3C에서는 <object> 태그를 권장합니다. XHTML2에서도 <img>는 <object>로 대체됩니다. <object> 메소드를 사용하여 플래시를 삽입하는 코드는 다음과 같습니다.
인용된 내용은 다음과 같습니다. <object type="application/x-shockwave-flash" data="test.swf" width="200" height="100"> <parm name="movie" value="test.swf /> </object> |
다만, 이 방법은 IE5-IE6/Win에서는 제대로 표시되지 않지만(연속재생이 불가능하고, 다운로드 전까지는 재생할 수 없습니다), 하위 버전에서는 제대로 표시됩니다. 나중에 작은 플래시 파일을 먼저 조정한 다음 큰 플래시 파일을 삽입하는 방법으로 연속 재생 문제가 해결되었습니다. 그러나 IE5 이상에서는 여전히 플래시가 표시되지 않는 경우가 있습니다.
3. 현행 임시조치
그렇다면 표준을 준수할 뿐만 아니라 모든 브라우저에서 플래시를 올바르게 표시하려면 어떻게 해야 할까요? 매크로미디어 웹사이트는 어떻게 W3c 검증을 통과합니까?
일부 디자이너는 불법 <embed> 태그를 숨기기 위해 JavaScript를 사용하는 것을 생각했습니다.
인용된 내용은 다음과 같습니다. <script type="text/javascript "> if (navegiator . mimeTypes && navigator . mimeTypes["application/x-shockwave-flash"] { document . write('<embed src="test . swf" ... |
현재는 이것이 더 나은 솔루션입니다. 플래시를 삽입하고 js를 사용하여 호출해야 합니다. 이 방법은 W3C 검증 프로그램을 속이고 페이지가 검증을 통과하도록 만들 수 있습니다. 그러나 그것은 단지 "속임수"일 뿐 실제로 표준을 충족시키지는 않습니다.
매크로미디어는 어떻게 이를 수행합니까? 다음 코드를 참조하십시오.
인용된 내용은 다음과 같습니다. <!-- $RCSfile: FlashDetection2k.pm,v $ $Revision: 1.68 $ : 브라우저의 승인 헤더는 Flash 6,0,65,0 이상을 사용하고 있음을 나타내므로 이 Flash 6 영화에 괜찮습니다. 여기 있습니다. 온다 --> |
타협 접근 방식을 채택합니다.
(1) 먼저, 자바스크립트는 브라우저 버전과 플래시 플레이어 버전을 결정합니다.
(2) 다양한 버전에 따라 백그라운드에서 HTML 코드를 동적으로 생성합니다.
간단히 말하면, 브라우저가 object의 MIME 유형 "application/x-shockwave-flash"를 처리할 수 없는 경우 <embed> 하위 요소를 삽입하는 것이 기본적으로 사용됩니다. 직설적으로 말하자면, 이는 <embed>를 숨기기 위해 js를 사용하는 것과 비슷합니다. 이 역시 "치팅" 방법이지만 현재 수행할 수 있는 가장 표준적이고 완벽한 방법입니다.
<embed>를 정말로 포기하고 싶다면 IE 브라우저가 <object>를 더 잘 지원할 때까지, 아마도 Longhorn이 나올 때까지만 기다리면 됩니다.