4

我目前遇到 IE8/7 问题(我别无选择,我必须在任何人抱怨之前添加对这些的支持),其中带有 youtube 视频的 IFrame 导致在历史记录中添加额外 URL 时出现问题,所以当我回击时在实际返回之前必须执行 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));
        }
    });
});

4

2 回答 2

2

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

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

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

希望这可以帮助!

于 2012-10-19T14:24:47.350 回答
1

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

只需将其添加到混合物中

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

已解决问题!

于 2012-10-19T14:45:43.367 回答