Javascript 2第页上的window.parent.onscroll调用不起作用

Javascript 2第页上的window.parent.onscroll调用不起作用,javascript,iframe,scroll,Javascript,Iframe,Scroll,我有一个HTML页面,里面有两个iFrame。我希望每个iframe显示父窗口的Y滚动偏移量。一个iframe在页面加载时工作,另一个不工作 父HTML页面只嵌入了iframe。以下是在iframe中运行的代码: function run(){ document.write("<div id='scrollY' style='float:left;'></div><br>"); scrollY = 'no'; document.getE

我有一个HTML页面,里面有两个iFrame。我希望每个iframe显示父窗口的Y滚动偏移量。一个iframe在页面加载时工作,另一个不工作

父HTML页面只嵌入了iframe。以下是在iframe中运行的代码:

function run(){
    document.write("<div id='scrollY' style='float:left;'></div><br>");
    scrollY = 'no';
    document.getElementById("scrollY").innerHTML = scrollY;
    window.parent.onscroll = function(){
        scrollY = window.parent.pageYOffset;
        document.getElementById("scrollY").innerHTML = scrollY;
    }
}
run();

我只能调用
window.parent.onscroll
一次吗?这对我来说似乎不正确。

发生这种情况是因为在两个帧中,
window.parent
引用相同的
window
对象,并且您在同一对象上设置了两次
onscroll
属性/事件。这意味着,第二次设置
window.parent.onscroll
属性时,实际上是在覆盖第一次设置事件的尝试,并用第二帧的
window.document
对象覆盖它,这就是为什么它只更新第二帧中元素的内容

要解决此问题,只需使用
addEventListener
而不是
onscroll

函数运行(){
文件。写(“
”); 滚动='否'; document.getElementById(“scrollY”).innerHTML=scrollY; window.parent.addEventListener('scroll',function(){ scrollY=window.parent.pageYOffset; document.getElementById(“scrollY”).innerHTML=scrollY; }); }
addEventListener
允许您为同一元素设置多个相同类型的事件,而
.onstuff
监听器不允许

iframe1 = 100
iframe2 = no
function run() {
    document.write("<div id='scrollY' style='float:left;'></div><br>");
    scrollY = 'no';
    document.getElementById("scrollY").innerHTML = scrollY;
    window.parent.addEventListener('scroll', function() {
        scrollY = window.parent.pageYOffset;
        document.getElementById("scrollY").innerHTML = scrollY;
    });
}