jQuery:我可以将一个函数绑定到父窗口的onscroll事件吗?

时间:2011-03-30 19:29:18

标签: javascript jquery events iframe javascript-events

我有一个不加载jQuery的页面。该页面(在同一个域中)中包含的<iframe>会加载jQuery。

使用jQuery,是否可以将函数绑定到父页面的window对象的事件,即使它没有加载jQuery?

访问父window似乎不是问题;这是有效的(至少在Firefox 4中):

console.log($(parent)); // displays "jQuery(Window index.html)" in the console

为了给出一些上下文,我正在开发要在<iframe>中加载的文档,但我不控制父页面,所以我不能使用需要添加jQuery的解决方案。最终,我想订阅父onscroll的{​​{1}}事件,以便每次在视口中滚动时在window执行一个函数。

我已经尝试过(在<iframe>内):

<iframe>

然而,这不起作用。

任何帮助将不胜感激。谢谢!


修改

这是一个有效的例子:

http://troy.onespot.com/static/stack_overflow/onscroll/parent.html

function my_function() { console.log('Scrolling...'); } $(parent).scroll(my_function); 中的文件在这里:

http://troy.onespot.com/static/stack_overflow/onscroll/iframe.html

2 个答案:

答案 0 :(得分:3)

尝试:

parent.onscroll = function() { ... };

<强>更新

试试这个,它对我有用:

$(parent.document).scroll(function() { ... });

答案 1 :(得分:1)

如果您正在尝试控制另一个域中的父页面,那么出于安全原因这是不可能的。

你可以找到关于这个问题的many articles,如果这不是你的情况,请告诉我们,因为确定还有其他问题。

如果在同一个域中,那么使用它:

$(document).ready(function(){         $(本).parent()滚动(函数(){//东西});     });

$(document).ready(function(){ 
   $(window.parent.document).scroll(function(){//stuff});
});