2012-04-11 76 views
1

我想在我的網頁上實現YouTube視頻的延遲加載。爲此,我有一個帶有HTML註釋的YouTube中的iframe代碼的a-Tag。此外還有一個onclick事件,它取代了評論標籤以激活YouTube代碼。替換爲JS後替換的HTML不會被執行

這裏的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有問題與我的代碼。

也許我稍後會改進代碼,但我的問題本身已得到解答。謝謝。

+2

這是做的很瘋狂的方式,你爲什麼不只是寫在函數而不是怪異搜索IFRAME元素和替換你做了語法。 – Dunhamzzz 2012-04-11 11:04:35

+0

問題是,有更多的視頻提供商不僅僅是YouTube,所有的視頻提供商都採用不同的實施方式 – Phil 2012-04-11 11:11:34

+0

那麼在這種情況下,您可以爲每一種功能製作不同的功能,至少可以節省您不必更新所有視頻鏈接如果運營商更改其嵌入代碼。 另外關於IE8的問題,這可能是因爲你把一個iframe放在一個錨標記中,試着將它改爲div。 – Dunhamzzz 2012-04-11 11:35:12

回答