2011-07-01 51 views
0

這段代碼適用於除IE7以外的每個瀏覽器。在IE7中,用戶被重定向到http://www.youtube.com。哦,它不只是重定向框架,整個頁面被重定向!有什麼想法嗎?想法?備用模式?YouTube Iframe嵌入導致在IE7中重定向

請幫幫我。 IE正在殺死我的生活意志。

$('.youtube .cue a').live('click', function(e) { 
    e.preventDefault(); 
    var $this = $(this); 
    var $area = $this.parents('.youtube'); 
    var $caption = $area.find('.videoDescription'); 
    var $li = $this.parents('li:first'); 
    var vid = $.trim($(this).attr('href').replace('#', '')); 
    var title = $li.find('.title').text(); 
    var time = $li.find('.time').text(); 
    var description = $li.find('.description').text(); 

    var $frame = $('<iframe></iframe>').attr({ 
     width:595, 
     height:350, 
     frameborder: 0, 
     src: 'http://www.youtube.com/embed/' + vid 
    }); 

    if (!hasFlash) { 
     $area.find('.captioned').html('<a href="http://get.adobe.com/flashplayer/" class="no-flash">Please install Flash</a>.'); 
    } 
    else { 
     $area.find('.captioned').html('').append($frame); 
    } 

    $caption.find('.title').html(title); 
    $caption.find('.time').html(time); 
    $caption.find('.description').html(description); 
    }); 

回答

2

它看起來對我來說,這條線:

var vid = $.trim($(this).attr('href').replace('#', '')); 

的問題。從<a>標記中檢索href將返回一個完全限定的URL(包括前面的http://和domain)。然後,在這一行,你將它添加到另一個完全合格的URL的末尾:

src: 'http://www.youtube.com/embed/' + vid 

那將產生一個奇怪的結果是這樣的:

http://www.youtube.com/embed/http://www.domain.com/xxxxxx

爲iframe src =屬性這可能不是你想要的。

什麼可能會讓你感到沮喪的是,從<a href="index.html">標記中檢索href會檢索完全限定的URL,即使頁面源只有一個相對URL。如果你只需要鏈接href的路徑或文件名,那麼你必須解析它。

我已經驗證了您的HTML和代碼的重構,如果您將這種不良網址提供給iFrame,它將重定向整個頁面(即使在Chrome中)。這裏是jsfiddle:http://jsfiddle.net/jfriend00/4P3dh/

如果您點擊運行,然後點擊「Click Me」鏈接,它將重定向整個頁面,因爲iFrame上的URL不正確。

+0

你知道這比我快很多!我非常感謝你的幫助,朋友。而且,對於我的網頁,這只是IE7中的一個問題。很多道具的幫助! –