我正在处理一个旧网站,我需要在点击某个链接时换出徽标图片。这适用于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,结果与其他一些相同。问题在于选择器,我似乎无法确定它是什么。
答案 0 :(得分:0)
http://jsfiddle.net/TJVuY/4/有帮助吗?我拿走了window.parent.top.frames [0] .document-它不需要,因为它是对文档本身的影响,现在它可以在IE 8中运行。
答案 1 :(得分: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>