我正在尝试将iframe嵌入另一个页面(不同的域)中
嵌入代码如下:
<script type="application/javascript" src="[...]/myTopScript.js"></script>
<iframe src="differentDomain/somePage.html" frameborder="0" allowfullscreen width="100%"></iframe>
我负责iframe内容和myTopScript.js
iframe中还有另一个脚本(我们称其为myInnerScript.js)
TL; DR:iframe的高度始终高于其内容高度(内部不滚动)
只要我的iframe内容高度发生变化,我都会通过
window.parent.postMessage
向父窗口发送一条消息,以向myTopScript.js提供新的高度。然后,顶部脚本将捕获该消息,并将我的iframe高度属性更新为newHeight + 1px
。通过这种方式,我的iframe不需要滚动条,并且看起来就像宿主网站的任何其他部分。
当鼠标悬停在iframe上时,无法滚动父页面(使用鼠标滚轮)。
overflow:hidden
标签上设置<body>
scrolling="no"
(不建议使用),但是它什么也没做pointer-events:none
上设置<iframe>
,因为我需要iframe内的鼠标事件(至少单击)您是否有任何规范参考或说明此的文档?还有关于我还可以尝试的想法?
我考虑过通过postMessage转发鼠标滚轮事件,但是我很确定这是不可靠的