6.17日音訊,flash頁面如何通過w3c標(biāo)準(zhǔn)。大家都知道,flash是不能被百度等搜索引摯所辨認(rèn),所以網(wǎng)頁上也不太建議使用flash,但像一些對(duì)于外表設(shè)計(jì)要求較高、如大型企業(yè)集團(tuán)、設(shè)計(jì)單位、裝飾裝修等等機(jī)構(gòu),他們對(duì)于形象則看重一些,這就不得不用一些flash才加以襯托和表現(xiàn)了,現(xiàn)在
邯鄲網(wǎng)站建設(shè)首創(chuàng)網(wǎng)絡(luò)小編來給大家說一下什么樣的flash代碼是符合w3c標(biāo)準(zhǔn)的,如何做的才是恰到好處。
1.embed是不太準(zhǔn)確的用法
<embed>標(biāo)簽是Netscape的私有標(biāo)簽,雖然<embed>標(biāo)簽應(yīng)用廣泛存在,但是從HTML3.2,HTML4.0到XHTML1.0,W3C都沒有收錄這個(gè)標(biāo)簽。使用<embed>標(biāo)簽的頁面將不能通過W3C校驗(yàn)。
2.應(yīng)該用object
W3C推薦的是<object>標(biāo)簽。甚至在XHTML2中,<img>都要被<object>所取代。用<object>方法插入flash的代碼是:
<objecttype="application/x-shockwave-flash"data="test.swf"width="200"height="100"><parmname="movie"value="test.swf/></object>
但是這個(gè)方法在IE5-IE6/Win上不能正確顯示(不能連續(xù)播放,要下載完才能放),在低版本的可以正確顯示。后來采用先調(diào)一個(gè)小flash文件再嵌入大flash文件的方法解決了連續(xù)播放的問題,但是在IE5以上版本有時(shí)依然出現(xiàn)不能顯示flash的情況。
3.目前的臨時(shí)辦法
那么既要符合標(biāo)準(zhǔn),又想在所有瀏覽器正確顯示flash應(yīng)該怎么做?macromedia網(wǎng)站是如何通過W3c校驗(yàn)的?
有設(shè)計(jì)師想到了用JavaScript來隱藏非法的<embed>標(biāo)簽,
<scripttype="text/javascript">if(navegiator.mimeTypes&&navigator.mimeTypes["application/x-shockwave-flash"]{document.write(''<embedsrc="test.swf"...
這是目前比較好的解決辦法。你一定要插flash,就用js調(diào)用。這種方法可以欺騙W3C的校驗(yàn)程序,使頁面通過校驗(yàn)。但僅僅是"欺騙",而不是真符合標(biāo)準(zhǔn)。
macromedia是怎么做的呢?看到這句代碼:
<!--$RCSfile:FlashDetection2k.pm,v$$Revision:1.68$:yourbrowser''sacceptheaderindicatesyouhaveFlash6,0,65,0orbetter,soyou''reOKforthisFlash6movie,hereitcomes.-->
它采用了一個(gè)折中二選一的辦法:
(1).首先javascript來判斷你的瀏覽器版本和flashplayer的版本;
(2).根據(jù)版本的不同在后臺(tái)動(dòng)態(tài)的生成HTML代碼。
簡單說就是默認(rèn)采用<object>方法,如果瀏覽器不能處理object的MIME類型“application/x-shockwave-flash”,它就插入子元素<embed>。說穿了,這和用js隱藏<embed>方法類似,也是一種“欺騙”的辦法,但這是目前能夠做到的最符合標(biāo)準(zhǔn)的,比較完美的做法了。
要想真正拋棄<embed>,只能等IE瀏覽器對(duì)<object>更好的支持才行,但并不是說我們現(xiàn)的標(biāo)準(zhǔn)就不符合,其實(shí)哪一種用哪一種也是要根據(jù)實(shí)際情況來定,當(dāng)然為了要標(biāo)準(zhǔn)靠近我們就不能根據(jù)自己意愿來行,善于運(yùn)用、認(rèn)真分析符合各瀏覽器的標(biāo)準(zhǔn)才行。