Javascript避免覆盖监听器

时间:2014-05-16 14:18:21

标签: javascript dom iframe scroll listeners

我正在开发一段将在非友好的iframe中运行的javascript。 幸运的是,我有一个界面,允许我在iframe父页面中运行javascript,但这不是问题。

问题是:在我的代码中,我需要将一个函数附加到iframe父页面的window.onscroll事件。不幸的是我从一开始就不知道我的代码将运行在哪些网站上,所以我不知道他们是否已经将一个函数附加到window.onscroll

如果我做了一个window.onscroll = function(){...}而网站已有一个会怎么样? 它会被覆盖吗? 如果是:有没有办法避免这种情况?

我希望我已经解释过了。 提前谢谢!

1 个答案:

答案 0 :(得分:1)

你可以这样做:

var oldHandler = null;

if('function' == typeof window.onscroll) {
  oldHandler = window.onscroll; 
}

window.onscroll = function(ev) {
  // your stuff...
  if(oldHandler) oldHandler.call(window, ev);
}