JQuery $('iframe')。准备好为什么不起作用?

时间:2011-10-26 07:19:23

标签: javascript jquery html iframe

我的父页面中有一个非常长的iframe。当您重新加载或单击i框架页面内的链接时,它会被加载到其中,但是纯粹的窗口必须向上滚动。

我尝试了variuos代码示例:jquery which event is better thatn thisHow to scroll parent page with iFrame reload 父页面正文代码:

<script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery(document).ready(function() {
    $('iframe').load(function(){
         $(window).scrollTop(0);
    });
});</script>
<iframe frameborder="0" height="1000" id="iframe" src="http://mysite.com" width="800"></iframe>

现在这是我在父页面中的最终代码:(这不起作用)

<script type="text/javascript">
$('iframe').ready(function(){
     $(window).scrollTop(0);
});
</script>
<iframe frameborder="0" height="1000" id="iframe" align="top" src="http://foicam.altervista.org/listadinamica.php" width="800" ></iframe>

但问题是每个代码在帧完全加载(图像包括)之后向上滚动父页面。我想要的是父页面在iframe完成加载之前向上滚动

如果您点击最后一张图片或向下滚动页面,然后只重新加载iframe,您就会明白我的意思!

Thanx很多,很抱歉,但我发现这个语言存在于今天下午!

2 个答案:

答案 0 :(得分:12)

将您的代码更改为:

<iframe frameborder="0" height="1000" id="iframe" align="top" src="http://foicam.altervista.org/listadinamica.php" width="800" ></iframe>

<script type="text/javascript">
$('iframe').ready(function(){
     $(window).scrollTop(0);
});
</script>

在iframe成为DOM的一部分之前,您的脚本正在调用。如果你的iframe是你的DOM的一部分后你的脚本,它将识别它,$('iframe')将实际找到该对象。

答案 1 :(得分:3)

脚本出现在源代码中的iframe之前,并且没有任何延迟执行的内容(例如在onready中调用)。

因此,当它执行时,iframe尚未添加到DOM,并且选择器找不到该帧。事件处理程序仅绑定到源中之前的任何iframe。