好的,首先是一些背景信息:我正在尝试在另一个页面中嵌入一个网页。子页面基本上是一个用 javascript 和 html 编写的小型 Web 应用程序,它接受多个输入屏幕(单选按钮、文本框等)并在最后给出一个带有结果的屏幕。这些屏幕中的每一个都可以是不同的尺寸。
我尝试使用两种方法进行嵌入:
1) 将子页面中的所有 html 和 javascript 复制到主页中,并将其粘贴在 div/table/whatever 中。
2) 将子页面保存在自己的文件中,并使用 embed/object/iframe 将其嵌入。
使用第一种方法,页面表现正常;唯一真正的问题(除了是一种混乱的解决方案)是我嵌入的子页面实际上是由外部应用程序生成的,并且页面经常被更新的版本替换。这或多或少排除了使用第一种方法作为长期解决方案的可能性。
现在第二种方法有它自己的问题。由于嵌入的 javascript 页面的高度会发生变化,因此持有它的框架需要随之改变大小。我可以使用此处给出的任何解决方案来更改大小,但是这些不会随着用户在每个屏幕上的进展而更新框架的大小。
到目前为止,我能想到的最接近的解决方案是使用 document.onclick 处理程序来捕捉任何可能导致子页面的下一个屏幕出现的点击。处理程序暂停很短的时间(以允许下一个屏幕出现),然后调用必要的调整大小函数。然而,这感觉像是一个非常 hacky 的解决方案,并且当滚动条尚未扩展以适应新内容时,滚动条显示在框架的一侧也会有一个稍微明显的延迟。我认为必须有更好的方法来做到这一点。