2012-05-29 4 views
0

У меня есть страница с несколькими объектами embedlight silverlight. Один игрок виден и все остальные скрыты (отображение: нет). Когда я нажимаю миниатюру, код клонирует соответствующий, скрытый объект и заменяет видимого игрока этим клонированным объектом.Клонирование объекта embedlight silverlight приводит к пустому элементу белого

Это прекрасно работает в Firefox, Chrome и IE9, но в IE8 он работает неправильно. Видимый игрок заменяется, но это приводит к большому белому пустующему серебряному игроку. Если вы щелкните правой кнопкой мыши этот белый элемент, он отобразит контекстное меню silverlight, но ничего больше. Никакой ошибки в консоли или какой-либо другой подсказки.

Сайт с этой проблемой в Интернете по адресу: http://www.vioranje.nl
открыть его в IE8 и нажмите на кнопку воспроизведения под Titlebar «веб afleveringen», чтобы увидеть, что происходит.

Это код JQuery, что клоны Silverlight игроков (которые присоединены к обработчикам событий щелчка миниатюр):

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

Что я могу сделать, чтобы решить эту проблему?

ответ

1

Я пытался отладить свое дело, и это швы как IE8 обрабатывает тег и перепишем его в следующем:

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

Который, видимо, теряет параметры вы передаете в видеопроигрыватель Silverlight Объект.

Вот трюк, который может помочь вам решить проблему для всех браузеров, Попробуйте использовать вместо использования, чтобы скрыть свои метки встраивать, С помощью тега .. ваш 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(); 

Надежда, что помогает :)

+0

Большое спасибо, Monir абу Хилал! Это было простое и хорошее решение! – Dreamdealer

+1

Я рад, что решение помогло вам, Добро пожаловать :) –