好的開源工具 swfobject–讓我們容易的在網頁嵌入flash,並且相容性強和利於seo

來源:互聯網
上載者:User

swfobject是什嗎?

 

它是一個開源的javascript工具類,我們可以在google code上很容易的找到它:http://code.google.com/p/swfobject/。它提供了一個統一的方式讓我們很輕鬆的在網頁中嵌入flash內容,而不用去考慮任何平台和瀏覽器的特殊標記,及它們對flash的支援能力。無論你是頁面製作、flash製作或者js的開發,你都可以找到一個適合的方式嵌入flash內容。其次,它還提供了一些API,讓你能夠去檢測當前瀏覽器對flash支援的一些資訊,讓你可以輕鬆的完成你的邏輯。據官方說檔案只有10kb,gzip之後只有3.9K。

 

如何用swfobject在頁面中嵌入flash?

 

它提供了兩種方法:靜態嵌入方法和動態嵌入。

靜態嵌入:它利用html標記嵌入flash內容和替代內容,然後選用js實現標記所不能完成的檢測、相容和動態替換等功能。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">  <head>    <title>SWFObject - step 3</title>    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<script type="text/javascript" src="swfobject.js"></script>

<script type="text/javascript">
swfobject.registerObject("myId", "9.0.115", "expressInstall.swf");
</script>

</head>  <body>    <div>

<object id="myId" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="780" height="420">

<param name="movie" value="myContent.swf" />

<!--[if !IE]>-->


<object type="application/x-shockwave-flash" data="myContent.swf" width="780" height="420">


<!--<![endif]-->

<p>Alternative content</p>


<!--[if !IE]>-->

</object>

<!--<![endif]-->

</object>

  </div>  </body></html>

上段代碼是直接從官方文檔處引來的,總的來說這種方式的嵌入分為三步:

1,利用html嵌入flash和替代內容,其中紫色代碼處就是。我們可以看到最外圍的object標籤,這是針對IE的,我們通過param標記來指定它的一些參數,內容的object標籤是對其它瀏覽器的,這裡也要指定flash的地址,並且還有一個<P>標記的替代內容,這是該js工具的一個亮點,首先,它可以在如果瀏覽器不支援flash的情況下,顯示這裡的內容,保證你的頁面在任何情況下都是完整的,並且是可控制的,第二,我們都知道搜尋引擎是不能索引flash內的內容的,我們在替代內容加入你想要索引的內容,這樣更利於SEO。

2,引入該js檔案,藍色代碼處。

3,紅色代碼處,告訴js你要讓它幫你完成相容等工作的標記,第一個參數是標記object的ID,第二個是你要求的flash的版本號碼,是按major.minor.release.build這樣的形式,js只管前三個,如果是只要是第9個大版本就行,用9而不是9.0.0。第三個參數可選,它顯示的是如果版本不支援,去下載特定版本時顯示的flash內容,該方案裡包含了一個flash,當然你也可以自訂。其實,還有一個可選的參數,傳一個回呼函數,不管是載入完成時調用的,無論成功或失敗都會調用的。

你可以重複1、3處的代碼來嵌入更多的flash內容。

動態嵌入:這種只需要你加入替代的內容,然後js會幫你完成flash的嵌入(當前瀏覽器支援並沒有禁用js,flash也處於可用狀態的情況下)。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">  <head>    <title>SWFObject dynamic embed - step 3</title>    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<script type="text/javascript" src="swfobject.js"></script>

<script type="text/javascript">
swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0");
</script>

</head>  <body>

<div id="myContent">
<p>Alternative content</p>
</div>

  </body></html>

第一步,紫色代碼處,只是替代內容。

第二步,引入js,藍色代碼處。

第三步,調用。第一個參數,嵌入的flash內容,第二個參數替代內容的ID,第三、四個flash的寬、高,第五個要求的版本號碼,第6個可選,去下載時的顯示的動畫,第7個可選要加入實際的flash的flashvars參數,第8個可選,要加入的params參數,第9個可選要加入的object的屬性參數,第10個可選,回呼函數。

其中7、8、9參數可以

var flashvars = {};flashvars.name1 = "hello";flashvars.name2 = "world";flashvars.name3 = "foobar";var params = {};params.menu = "false";var attributes = {};attributes.id = "myDynamicContent";attributes.name = "myDynamicContent";

這樣的形式出現,當然你也可以傳個{}過去,更詳細的介紹還是去google code吧。

 

這裡只是描述了嵌入flash的簡單的方法,但是swfobject的功能絕不僅如此,它提供的其它api可以讓你輕易的實現選擇性嵌入等等。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.