Silverlight與Flash在FF中的一些注意點
在HTML中,Silverlight、Flash以object標簽的形式顯示,如以下代碼:
![](https://imageproxy.pixnet.cc/imgproxy?url=https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/object
但是必須同時指定該object元素的height、width的值,否則在FF下不能顯示。
同時如果height的值為百分比,則它的外圍元素必須有高度,否則也不顯示(width的值為百分比的情況也一樣)
如下代碼在FF下不能顯示:
![](https://imageproxy.pixnet.cc/imgproxy?url=https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
object data="data:application/x-silverlight-2," type="application/x-silverlight-2" style=" height:100%;width:100%"
/object
/div
如下代碼在FF下可以顯示(因為div默認寬度就是整個屏幕的寬度):
![](https://imageproxy.pixnet.cc/imgproxy?url=https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
object data="data:application/x-silverlight-2," type="application/x-silverlight-2" style=" height:100%;width:100%"
/object
/div
另一個注意點也是在FF下,當把object元素用style.display=none的形式隱藏掉,再用style.display=顯示出來的時候,Silverlight、
Flash會重新加載,之前代碼中的一些屬性字段也都沒了。(隱藏掉外圍元素也是一樣,即object外面有個div,隱藏div再顯示一樣觸發重新加載)
另外,改變該object元素的style.position值,幾乎都會讓Silverlight、Flash重新加載,比如從static到absolute,從static到relative,
absolute到relative等等。將該object元素移動到別的DOM對象下面也會觸發重新加載,比如document.body.appendChild(obj)。
以Silverlight為例:
Silverlight的App代碼中,在Application啟動的時候,彈出一個提示框:
![](https://imageproxy.pixnet.cc/imgproxy?url=https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
{
this.RootVisual = new MainPage();
MessageBox.Show("啟動);
}
頁面代碼:
![](https://imageproxy.pixnet.cc/imgproxy?url=https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
param name="source" value="ClientBin/Test.xap"/
param name="background" value="white" /
param name="minRuntimeVersion" value="3.0" /
param name="autoUpgrade" value="true" /
/object
br /br /br /br /br /br /br /br /
input type="button" value="隱藏?" onclick="obj.style.display='none'"/
input type="button" value="顯示" onclick="obj.style.display='block'"/
br /br /
select id="Select1" value="inherit"
option value="inherit"inherit/option
option value="absolute"absolute/option
option value="fixed"fixed/option
option value="relative"relative/option
option value="static"static/option
/select
input type="button" value="設置position" onclick="obj.style.position=Select1.value"/
script type="text/javascript"
var obj = document.getElementById('obj');
var Select1 = document.getElementById('Select1');
/script
這樣由于在FF中詭異的重新加載問題,如果實際應用中確實要隱藏掉object元素,可以設置style.visibility=hidden,雖然這樣該元素還是在頁面上占著位置。目前還沒找到完美的解決方案。