Замененный HTML не запускается после замены JS

63
3

Я хочу реализовать ленивую загрузку для видео YouTube на моей веб-странице. Для этого у меня есть a-Tag с iframe-кодом YouTube в HTML-комментариях. Кроме того, есть событие onclick, которое заменяет теги комментариев, чтобы активировать код YouTube.

Вот пример HMTL:

<a href="http://www.youtube.com/watch?v=KC2zbOwbeEs&hd=1" class="video-in-link" style="background:url('http://i.ytimg.com/vi/KC2zbOwbeEs/hqdefault.jpg') no-repeat center center; width:500px; height:281px;" onclick="videoInLink(this);">
<!-- xxltxxiframe width="500" height="281" src="http://www.youtube.com/embed/KC2zbOwbeEs?fs=1&feature=oembed&autoplay=1" frameborder="0" allowfullscreenxxgtxxxxltxx/iframexxgtxx -->
</a>

Вот соответствующий JS:

function videoInLink(anchor){
anchor.innerHTML = anchor.innerHTML.replace(/xxltxx/gi,'<');
anchor.innerHTML = anchor.innerHTML.replace(/xxgtxx/gi,'>');
anchor.innerHTML = anchor.innerHTML.replace(/<!--/,'');
anchor.innerHTML = anchor.innerHTML.replace(/-->/,'');
anchor.style.background="none";
anchor.removeAttribute('href');
anchor.onclick= null;
return false;
}

Все в порядке в Firefox и Chrome: содержимое заменяется и начинается видео. в IE8 замена, похоже, тоже произойдет, но видео не загрузится.

Пробовал несколько комбинаций, без успеха.

Хорошо, Dunhamzzz был прав в своих мыслях, делающих код легче. Я перешел на собственные функции для каждого поставщика видео и работа по внедрению. Итак, у IE8 нет проблем с активацией кода после выполнения JavaScript, у IE8 была проблема с моим кодом.

Возможно, я улучшу код позже, но на мой вопрос будет дан ответ. Благодарю.

спросил(а) 2021-01-19T14:56:05+03:00 6 месяцев, 2 недели назад
1
Решение
109

Вместо этого вы можете создать узел iframe с помощью javascript и добавить его к родительскому, а не выполнять этот хакерский хакер. Один простой пример: http://www.developerfusion.com/thread/33979/creating-iframe-through-javascript/

ответил(а) 2021-01-19T14:56:05+03:00 6 месяцев, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема