2012-10-19 163 views
4

我目前有一個問題與IE8/7(我沒有選擇,我必須在任何人呻吟之前添加對這些支持這些)與youtube視頻iframe導致添加額外的URL的問題進入歷史,所以當回擊時我必須做2-3次,才能真正回去,我目前的解決方案似乎可以在較新的瀏覽器中工作,但不是我遇到的兩個問題,目前的解決方案是:IFrame導致後退按鈕問題

<script type="text/javascript"> 
$(document).ready(function() { 
    $("iframe").each(function() { 
     var ifr_source = $(this).attr('src'); 
     if (ifr_source.indexOf("youtube") != -1) { 
      var parent = $(this).parent(); 
      var ifr = $(this).detach(); 
      var wmode = "wmode=transparent"; 
      if (ifr_source.indexOf('?') != -1) { 
       var getQString = ifr_source.split('?'); 
       var oldString = getQString[1]; 
       var newString = getQString[0]; 
       $(this).attr('src', newString + '?' + wmode + '&' + oldString); 
      } 
      else $(this).attr('src', ifr_source + '?' + wmode); 
      ifr.appendTo($(parent)); 
     } 
    }); 
}); 

回答

1

只是回答這裏我自己的問題......

簡單地增加這種混進去

   var frame.src = 'javascript:parent.getFrameHTML()' 

已經解決了這個問題!

2

更改iframe的src屬性每一次的iFrame的註冊窗口的歷史的新條目。

有一種方法可以防止這種情況發生。而不是使用.attr('src'...使用:

$("iframe").each(function() { 
    (this.contentWindow || this.documentWindow).location.replace('your new url'); 
}); 

希望這有助於!

+0

這並沒有什麼幫助,因爲這個URL每次都會改變,因爲這是產品的問題,謝謝你的回答。 –

+0

這有效,但你需要獲得框架的窗口,而不僅僅是框架本身。使用'this.conentWindow || this.documentWindow',然後調用location.replace()。 – Chaulky

+0

'this.location'是未定義的,它(顯然)不起作用。 –