0

我有一个包含一些 silverlight 嵌入对象的页面。一个玩家可见,其他所有玩家都隐藏(显示:无)。当我单击缩略图时,代码会克隆相应的隐藏对象并用这个克隆对象替换可见播放器。

这在 Firefox、Chrome 和 IE9 中运行良好,但在 IE8 中无法正常运行。可见的玩家被替换,但这会导致一个大的白色空银光玩家。如果您右键单击此白色元素,它会显示一个 silverlight 上下文菜单,但没有其他内容。控制台或其他线索中没有错误。

有此问题的网站位于:http
://www.vioranje.nl 在 IE8 中打开它,然后单击标题栏“web afleveringen”下方的播放按钮,看看会发生什么。

这是克隆 Silverlight 播放器的 jQuery 代码(附加到缩略图的单击事件处理程序):

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();

我能做些什么来解决这个问题?

4

1 回答 1

1

我已经尝试调试您的案例,它看起来像 IE8 处理标签并重新编写如下:

<OBJECT data="data:application/x-oleobject;base64,QfXq3+HzJEysrJnDBxUISgAJAACuLQAAuh8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" width=442 type=application/x-silverlight-2 height=307 checkedByCssHelper="true"></OBJECT>

这显然会丢失您传递给 Silverlight 视频播放器对象的参数。

这是可以帮助您解决所有浏览器问题的技巧,尝试使用 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();

希望对你有帮助:)

于 2012-05-29T14:32:46.487 回答