IFrame导致后退按钮问题

时间:2012-10-19 14:11:07

标签: javascript iframe internet-explorer-8 internet-explorer-7

我目前遇到IE8 / 7的问题(我没有选择,我必须在任何人呻吟之前添加对这些内容的支持),其中带有youtube视频的IFrame导致在历史记录中添加额外网址的问题,所以当回击之前我必须做2-3次实际回去之前,我目前的解决方案似乎适用于较新的浏览器但不是我遇到的两个问题,目前的解决方案是:

<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));
        }
    });
});

2 个答案:

答案 0 :(得分:2)

每次更改iFrame的src属性时,iFrame都会在窗口的历史记录中注册一个新条目。

有一种方法可以防止这种情况发生。而不是使用.attr('src'...使用:

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

希望这有帮助!

答案 1 :(得分:1)

在这里回答我自己的问题......

只需将其添加到混音

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

已解决问题!