Firefox没有显示动态添加的Silverlight 5控件

csh*_*per 5 c# silverlight firefox

我在Firefox面板中托管的Silverlight 5应用程序未在Firefox(版本11)中显示.但它在Chrome,IE和Safari中运行良好.我正在动态加载Silverlight对象,如下所示.这样做是为了传递init参数.(我删除了测试).我在Firefox中获得了一个小的白色空白Silverlight区域来代替Silverlight应用程序.

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);
Run Code Online (Sandbox Code Playgroud)

但是,来自各种浏览器的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>
Run Code Online (Sandbox Code Playgroud)

这与Chrome,IE和Safari完全相同.

我尝试了其他示例SL 5应用程序(虽然没有动态加载),这些在Firefox上运行良好.

我在不同的机器上尝试过不同版本的Firefox.它没有帮助.关于这里可能出错的任何建议都会非常有帮助.

Bor*_*sky 4

data属性存在无效的 data: URI,因此不会加载任何内容。使用有效的 URI(类型后至少需要一个逗号)有帮助吗?

  • data: URI 的语法位于 http://www.ietf.org/rfc/rfc2397.txt 第 3 节中,并且需要在类型后面添加逗号。即使其格式错误,某些浏览器也可能会接受它,但这并不意味着它是正确的。 (2认同)