1

我想在我的网页上实现 YouTube 视频的延迟加载。为此,我在其中的 HTML 注释中有一个带有 YouTube 的 iframe 代码的 a-Tag。此外,还有一个 onclick 事件,它替换了评论标签以激活 YouTube 代码。

以下是 HMTL 的示例:

<a href="http://www.youtube.com/watch?v=KC2zbOwbeEs&#038;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&#038;feature=oembed&#038;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我的代码有问题。

也许我稍后会改进代码,但我的问题本身已经得到解答。谢谢。

4

1 回答 1

0

您可以改为使用 javascript 创建 iframe 节点,并将其附加到父节点,而不是执行此 innerHTML hack。这里有一个简单的例子:http: //www.developerfusion.com/thread/33979/creating-iframe-through-javascript/

于 2012-04-11T11:03:46.253 回答