iOS document.body.scrollTop在iframe中始终为0

时间:2017-01-12 02:04:43

标签: javascript ios iframe

iframe页面内编写代码(不是其父代码。代码必须位于iframe src页面中)

尝试检测scrollTop ..

我已经尝试了document.body.scrollTop,它适用于所有其他浏览器。

在i-things中,值始终为零。 RIP史蒂夫作业

如何在ipad中滚动iframe获取scrollTop?他们都从我开始,为什么苹果这么难?你认为他们会喜欢i-frames并尝试将它们打造得太合适了吗?

1 个答案:

答案 0 :(得分:0)

我找到的唯一解决方案是在iframe的父容器中使用window.pageYOffset并使用postMessage将其发送到iframe。

这是我的解决方案:

iframe请求scrollTop->

this.sendMessage({'type': "getMarginTop", 'source': selector});

容器收听消息并回复 - > pageYOffset

window.addEventListener('message',  function (e) {
        myiframe.contentWindow.postMessage({"type":"getMarginTop-success", "top": window.pageYOffset}, '*'); 
});

iframe听取消息 - >

window.addEventListener('message',  function (e) {
        if (e.data.type == "getMarginTop-success"){
            //here the scrollTop data e.data.top
        }
}, false);

我希望可以帮助别人