2011-07-12 80 views
1

我是網頁設計中的新手,我一直在想知道哪個是嵌入swf對象的現代嵌入* .swf對象:javascript vs xhtml

我一直在使用下面的HTML代碼:

<object id="flash1" data="presentacion/prototipe.swf" height="300" type="application/x-shockwave-flash" width="500"> 
<param name="movie" value="presentacion/prototipe.swf" /> 
</object> 

然而,我注意到,一些設計師使用JavaScript嵌入SWF文件。像這樣的

<script type="text/javascript"> 
var flashvars = { 
}; 

var params = { 
    menu: "false", 
    scale: "noScale", 
    allowFullscreen: "true", 
    allowScriptAccess: "always", 
    allowNetworking: "all", 
    bgcolor: "#ffffff", 
    base: "swf/" 
}; 
var attributes = { 
    id:"flashMovie" 
}; 
swfobject.embedSWF("swf/flash_movie.swf", "flashMovie", "550", "400", "9.0.0", "swf/expressinstall.swf", flashvars, params, attributes); 
</script> 

看來,這兩種方式產生相同的結果,但:什麼是這些方法的shorfalls?哪種方法最新?關於網絡瀏覽器是否存在任何兼容性問題?

在此先感謝。

回答

1

swfobject(javascript)處理瀏覽器之間的兼容性並防止頁面無效(這在某些設置中很常見)。

Javascript的缺點包括您必須加載另一個JavaScript文件請求,您依賴於使用Javascript並且您必須等待以加載客戶端。我認爲所有這些都不重要 - 我相信這是最好的方法。 XHTML方法有相反的優點/缺點,不需要額外的JavaScript,它可以根據W3標準有效(但我相信存在一些限制),並且您必須擔心瀏覽器的兼容性。

1

您想使用SWFObject,因爲某些瀏覽器不支持您提供的HTML代碼。

使用SWFObject,因爲它將決定什麼可以工作,因此您不必。這樣你就不必知道跨瀏覽器的陷阱。這就是它存在的原因。

+0

謝謝你的警告,我沒有任何線索,該代碼將無法在某些瀏覽器中運行。 –

1

另一個原因是swfobject()解決了Internet Explorer中的專利引起的限制 - 用於將動態內容嵌入到網頁中的微軟got sued by a troll。爲了繞過專利,MS在所有嵌入式內容(flash,java等)上添加了「點擊激活」功能。 swfobject()爲解決方法實現了一種解決方法,可以在不需要點擊的情況下自動激活此內容。

只是表明軟件專利如何魯鈍的...