五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > 你在騙W3C,還是在騙自己的客戶?

你在騙W3C,還是在騙自己的客戶?

文章來源:365jz.com     點(diǎn)擊數(shù):167    更新時(shí)間:2009-06-13 23:50   參與評(píng)論
主機(jī)網(wǎng)全新上線,買空間、服務(wù)器就上主機(jī)網(wǎng),安全有保障!

這問題不知道該責(zé)罵不會(huì)自動(dòng)更新的IE6,還是該詛咒不懂向下兼容的W3C標(biāo)準(zhǔn)。

這是FLASH傳統(tǒng)的嵌入方法:

<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 標(biāo)簽來嵌入,細(xì)心的會(huì)發(fā)現(xiàn),object 的很多參數(shù)和 embed 里面的很多屬性是重復(fù)的。

有的瀏覽器支持 object ,有的支持 embed ,這也是為什么要修改 Flash 的參數(shù)時(shí)兩個(gè)地方都要改的原因。這種方法是 Macromedia 一直以來的官方方法,最大限度的保證了 Flash 的功能,沒有兼容性問題。

但是自從有了W3C標(biāo)準(zhǔn),和一些極力要求通過該標(biāo)準(zhǔn)的客戶,事情復(fù)雜了:

embed被認(rè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)。

其實(shí)他們這樣考慮也是正確的,大部分西方國家的用戶,正版vista系統(tǒng)基本上做到了普及,他們大多使用IE7.0/IE8.0等主流瀏覽器,使用這種簡介的標(biāo)簽可以節(jié)省好幾行代碼:

  1. <object type="application/x-shockwave-flash" data="test.swf" width="200" height="100"> <parm name="movie" value="test.swf /> </object>

但是在盜版泛濫的中國,多數(shù)用戶仍然在使用windows xp系統(tǒng)上自帶的IE6瀏覽器,而它是不支持object標(biāo)簽的,只能使用變通的方式來解決。

目前的臨時(shí)辦法

既要符合標(biāo)準(zhǔn),又想在所有瀏覽器正確顯示flash應(yīng)該怎么做?我們可以添加一段冗長的JavaScript來隱藏embed標(biāo)簽:

  1. function getFlashObject(flashSrc, objWidth, objHeight, etcParam) {
  2.     var tag = "";
  3.     var baseFlashDir="";
  4.     flashSrc = baseFlashDir + flashSrc;
  5.     if ( etcParam != "" || etcParam != null ) {
  6.         if ( etcParam.substr(0, 1) == "?" )
  7.             flashSrc += etcParam;
  8.         else
  9.             flashSrc += "?" + etcParam;
  10.     }
  11.     tag += "<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" ";
  12.     tag += "codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0\" ";
  13.     tag += "width=\"" + objWidth + "\" height=\"" + objHeight + "\">";
  14.     tag += "<param name=\"movie\" value=\"" + flashSrc + "\" />";
  15.     tag += "<param name=\"quality\" value=\"high\" />";
  16.     tag += "<param name=\"wmode\" value=\"transparent\" />";
  17.     tag += "<embed src=\"" + flashSrc + "\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" ";
  18.     tag += "type=\"application/x-shockwave-flash\" width=\"" + objWidth + "\" height=\"" + objHeight + "\" ";
  19.     tag += "wmode=\"transparent\"></embed>";
  20.     tag += "</object>";
  21.     document.write(tag);
  22. }

不只如此,還需要在頁面中添加若干調(diào)用該JS的參數(shù)

  1. <script language="JavaScript" type="text/javascript">getFlashObject('images/test.swf', '100%', '100%', '')</script>

那新的問題又出現(xiàn)了,如果用戶禁用了javascript怎么辦?

難道要先寫出更多的代碼,判斷用戶使用的是什么瀏覽器,然后根據(jù)瀏覽器再輸出合適的代碼?我靠,多影響頁面執(zhí)行效率啊,為了一個(gè)W3C標(biāo)準(zhǔn),多那么多行代碼,讓每一個(gè)訪問自己網(wǎng)站的用戶多等待1秒鐘?

所以我想表述的觀點(diǎn)是:

目前,IE6普及的大環(huán)境下,暫時(shí)不要考慮W3C標(biāo)準(zhǔn)。用心做好自己的頁面,能少寫幾行代碼就少寫幾行代碼。不要為了標(biāo)準(zhǔn)去做標(biāo)準(zhǔn)。

如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會(huì)為你解答?。?點(diǎn)擊進(jìn)入論壇

發(fā)表評(píng)論 (167人查看,0條評(píng)論)
請(qǐng)自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
昵稱:
最新評(píng)論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時(shí)間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)