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'是未定义的,它(显然)不起作用。 –