1

我正在处理一个旧网站,当单击某个链接时,我需要换出徽标图像。这适用于 firefox 和 chrome,但不适用于 IE。

为了增加问题的复杂性,包含脚本的页面嵌套在三个框架集中。该链接与脚本位于同一框架集中,但徽标位于顶部框架中。

$('a.reset-logo').click(function() {
    var img = '../images/img1.gif';

    var $img = $('img.header-image', window.parent.top.frames[0].document);

    //testing
    //shows the correct src in chrome/firefox -- undefined in IE    
    //alert($img.attr('src'));

    $img.attr('src', img);
});

是的,我必须保持使用框架。这不是重写,只是维护问题。我已经把头撞在墙上太久了。

我尝试将上下文更改为 window.top.frames[0].document ,但结果相同,等等。问题在于选择器,我似乎无法确定它是什么。

4

2 回答 2

0

通过将脚本更改为以下内容,我能够使其工作:

<script type="text/javascript">
    $(document).ready(function () {
        $('a.reset-logo').click(function (e) {
            var theFrame = window.parent.top.frames[0].document;
            var theSrc = '../images/img1.jpg';

            $(theFrame).find('img.header-image').attr('src', theSrc);
        });
    });
</script>
于 2012-08-20T14:09:54.640 回答
0

http://jsfiddle.net/TJVuY/4/有帮助吗?我拿走了 window.parent.top.frames[0].document- 它不是必需的,因为它引用了文档本身,现在它可以在 IE 8 中使用。

于 2012-08-17T16:56:43.797 回答