2012-03-22 28 views
5

ASP.NETパネルでホストされているSilverlight 5アプリケーションがFirefox(バージョン11)に表示されません。ただし、Chrome、IE、Safariでは正常に動作します。私は、以下に示すようにSilverlightオブジェクトを動的にロードしています。これは、initパラメータを渡すために行われます。 (これはテストのために削除したものです)。 FirefoxのSilverlightアプリケーションの代わりに小さな白い空白のSilverlight領域が表示されています。Firefoxに動的に追加されたSilverlight 5コントロールが表示されない

HtmlGenericControl myHtmlObject = new HtmlGenericControl("object"); 
myHtmlObject.Attributes["data"] = "data:application/x-silverlight"; 
myHtmlObject.Attributes["type"] = "application/x-silverlight"; 
HtmlGenericControl mySourceParam = new HtmlGenericControl("param"); 
mySourceParam.Attributes["name"] = "source"; 
mySourceParam.Attributes["value"] = "ClientBin/SilverlightApp.xap"; 
myHtmlObject.Controls.Add(mySourceParam); 
HtmlGenericControl myOnErrorParam = new HtmlGenericControl("param"); 
myOnErrorParam.Attributes["name"] = "onError"; 
myOnErrorParam.Attributes["value"] = "onSilverlightError"; 
myHtmlObject.Controls.Add(myOnErrorParam); 
myHtmlObject.Attributes["width"] = "100%"; 
myHtmlObject.Attributes["height"] = "100%"; 
panelSilverlightHost.Controls.Add(myHtmlObject); 

ただし、さまざまなブラウザのHTMLソースは同じように見えます。

のFirefoxからページのHTML:

<object data="data:application/x-silverlight" 
    type="application/x-silverlight" width="100%" 
height="100%"> 
    <param name="source" value="ClientBin/SilverlightApp.xap"></param> 
    <param name="onError" value="onSilverlightError"></param> 
</object> 

これはクローム、IEとSafariと全く同じです。

私は他のサンプルSL 5アプリケーション(動的にロードされていない)を試しましたが、これらはFirefox上で正常に動作します。

さまざまなバージョンのFirefoxを異なるマシンで試しました。それは助けにはならない。 ここで何が間違っているかについてのご意見は非常に役に立ちます。

+0

コードが正常であるようです。これはFirefoxの問題です。 – blitzkriegz

+0

Firefoxで私のSilverlightオブジェクトが表示されないという問題はすべて、囲みdivに高さと幅を適用することで解決されています。 (100%ではなく数値です) – bperreault

答えて

4

属性が無効です:URIなので、何もロードされません。有効なURIを使用していますか(タイプの後に少なくともカンマが必要です)?

+0

データ属性が正しいと確信しています。 OPはそれが他のブラウザでうまく動作すると言いました。 – Nemo

+2

data:URIの構文はhttp://www.ietf.org/rfc/rfc2397.txtセクション3にあり、タイプの後にカンマが必要です。一部のブラウザは不正な形式であってもそれを受け入れるかもしれませんが、それが正しいとは限りません。 –

+1

@ Boris Zbarsky:+1。また、Firefoxの互換性をサポートするために、末尾のカンマが必要であることをどこか読んで覚えています。 –

関連する問題