DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> ie6普及的大環境下暫時不要考慮w3c標准
ie6普及的大環境下暫時不要考慮w3c標准
編輯:CSS詳解     

這問題不知道該責罵不會自動更新的IE6,還是該詛咒不懂向下兼容的w3c標准。
這是Flash傳統的嵌入方法:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.Macromedia.com/pub/shockwave/cabs/flash/swFlash.cab#version=7,0,19,0" width="32" height="32"> 
<param name="movIE" value="test.swf" /> 
 <param name="quality" value="high" /> 
 <embed src="test.swf" quality="high" pluginspage="http://www.Macromedia.com/go/getflashplayer" type="application/x-shockwave-Flash" width="32" height="32"></embed> 
</object> 
使用 object 和 embed 標簽來嵌入,細心的會發現,object 的很多參數和 embed 裡面的很多屬性是重復的。
有的浏覽器支持 object ,有的支持 embed ,這也是為什麼要修改 flash 的參數時兩個地方都要改的原因。這種方法是 Macromedia 一直以來的官方方法,最大限度的保證了 Flash 的功能,沒有兼容性問題。
但是自從有了w3c標准,和一些極力要求通過該標准的客戶,事情復雜了:
embed被認為是非法的
embed 標簽是 netscape 的私有標簽,雖然 embed 標簽應用廣泛存在,但是從html3.2,html4.0到xHtml1.0,w3c都沒有收錄這個標簽。使用embed 標簽的頁面將不能通過w3c校驗。
其實他們這樣考慮也是正確的,大部分西方國家的用戶,正版Vista系統基本上做到了普及,他們大多使用ie7.0/IE8.0等主流浏覽器,使用這種簡介的標簽可以節省好幾行代碼:
   
<object type="application/x-shockwave-Flash" data="test.swf" width="200" height="100"> <parm name="movIE" value="test.swf /> </object>

但是在盜版泛濫的中國,多數用戶仍然在使用Windows xp系統上自帶的IE6浏覽器,而它是不支持object標簽的,只能使用變通的方式來解決。
目前的臨時辦法
既要符合標准,又想在所有浏覽器正確顯示Flash應該怎麼做?我們可以添加一段冗長的Javascript來隱藏embed標簽:
   
function getflashobject(Flashsrc, objwidth, objheight, etcparam) {     
   var tag = "";     
   var baseFlashdir="";     
   flashsrc = baseflashdir + Flashsrc;     
   if ( etcparam != "" || etcparam != null ) {     
       if ( etcparam.substr(0, 1) == "?" )     
           Flashsrc += etcparam;     
       else     
           Flashsrc += "?" + etcparam;     
   }     
   tag += "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" ";     
   tag += "codebase=\"http://download.Macromedia.com/pub/shockwave/cabs/flash/swFlash.cab#version=7,0,19,0\" ";     
   tag += "width=\"" + objwidth + "\" height=\"" + objheight + "\">";     
   tag += "<param name=\"movIE\" value=\"" + Flashsrc + "\" />";     
   tag += "<param name=\"quality\" value=\"high\" />";     
   tag += "<param name=\"wmode\" value=\"transparent\" />";     
   tag += "<embed src=\"" + flashsrc + "\" quality=\"high\" pluginspage=\"http://www.Macromedia.com/go/getFlashplayer\" ";     
   tag += "type=\"application/x-shockwave-Flash\" width=\"" + objwidth + "\" height=\"" + objheight + "\" ";     
   tag += "wmode=\"transparent\"></embed>";     
   tag += "</object>";     
   document.write(tag);     
}

不只如此,還需要在頁面中添加若干調用該JS的參數
   
<script language="Javascript" type="text/Javascript">getFlashobject('images/test.swf', '100%', '100%', '')</script>

那新的問題又出現了,如果用戶禁用了Javascript怎麼辦?
難道要先寫出更多的代碼,判斷用戶使用的是什麼浏覽器,然後根據浏覽器再輸出合適的代碼?我靠,多影響頁面執行效率啊,為了一個w3c標准,多那麼多行代碼,讓每一個訪問自己網站的用戶多等待1秒鐘?
所以我想表述的觀點是:
目前,IE6普及的大環境下,暫時不要考慮w3c標准。用心做好自己的頁面,能少寫幾行代碼就少寫幾行代碼。不要為了標准去做標准。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved