我有一个带有一些silverlight嵌入对象的页面。一个玩家可见,所有其他玩家都被隐藏(显示:无)。当我单击缩略图时,代码将克隆相应的隐藏对象,并用此克隆对象替换可见播放器。
这在Firefox,Chrome和IE9中运行良好,但在IE8中它无法正常工作。可见的玩家被取代,但这导致一个大的白色空银色玩家。如果右键单击此白色元素,它将显示silverlight上下文菜单,但不显示任何其他内容。控制台或其他线索没有错误。
有此问题的网站在线:http://www.vioranje.nl
在IE8中打开它,然后单击标题栏“web afleveringen”下面的播放按钮,看看会发生什么。
这是克隆Silverlight播放器的jQuery代码(附加到缩略图的click事件处理程序):
var embedType = (element.data().embedtype) ? element.data().embedtype : 'object';
var $embed = $element.find('.large .embed '+embedType);
var $newplayer = $(this).find('.embed');
var newplayerHTML = $newplayer.html();
var $newplayerInstance = $(newplayerHTML);
$embed.replaceWith($newplayerInstance);
$newplayerInstance.show();
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
我已经尝试调试你的情况,它接口像IE8处理标签并重新编写如下:
<OBJECT data="data:application/x-oleobject;base64,QfXq3+HzJEysrJnDBxUISgAJAACuLQAAuh8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" width=442 type=application/x-silverlight-2 height=307 checkedByCssHelper="true"></OBJECT>
显然会丢失您传递给Silverlight视频播放器Object的参数。
这可能有助于您解决所有浏览器的问题, 尝试使用a代替使用a来隐藏嵌入代码, 通过使用标签..您的Silverlight代码在隐藏时不会被执行,因为它将被视为文本而不是HTML代码。
所以在你的 HTML模板代码“tpl_rtlxlvideo”中:
替换:
<div class="embed" style="display: none;">{YOUR OBJECT TAG}</div>
使用:
<textarea class="embed" style="display: none;">{YOUR OBJECT TAG}</textarea>
对于 Javascript方:
替换:
var newplayerHTML = $newplayer.html();
使用:
var newplayerHTML = $newplayer.val();
希望能帮助你:)