繁体   English   中英

如何在GWT应用程序的内部框架上摆脱双滚动条

[英]how to get rid of double-scrollbars on internal frame of GWT app

作为将旧版应用程序移植到GWT的一部分,我们需要将现有的JSP嵌入到GWT应用程序中。 这些页面中的许多页面都非常长,因此会产生一个双滚动条,一个滚动条用于主应用程序的窗口,第二个滚动条用于框架的内容。 我想摆脱内部滚动条,而在主窗口上只有普通的浏览器滚动条。 如果我可以获取渲染内容的高度(整个可滚动区域),则可以在框架上设置高度以匹配此高度,但是我看不到从何处获取该信息。

编辑 :澄清一下,GWT是主要的应用程序导航,并使用iframe( com.google.gwt.user.client.ui.Frame )嵌入旧内容。 我正在尝试做的是使页面足够大,以使随附的框架不需要滚动条。 只有主机页面会滚动。 如果有任何方法可以确定框架的“可滚动区域”,则可以动态调整主页的大小以适合它。

第2次编辑 :按照杰克M的建议,我或多或少地结束了比赛。 但是,我没有使用HTTPRequest,而是使用RequestBuilder,这使它变得像馅饼一样容易。 我想采用这种手动获取HTML的方法,而不是从一开始就使用框架,但是由于必须“修复”托管页面中的URL而感到困扰。 如果用户“单击”托管的HTML,则必须修补许多相对URL的实例才能正常工作。 使历史导航与此同时工作还有些麻烦。 一旦我整理了一下代码,我将尝试将其发布到人们可以使用的地方,因为我敢肯定这对于将现有应用程序迁移到GWT的人们来说应该是一个常见用例。

我想想到的完全解决此问题的最简单方法是不使用Frame元素,而是将HTMLPanelHTTPRequest结合使用。 这种方法增加了RPC调用的复杂性,但是HTMLPanel是一个简单的<div> ,其中包含内容。 这样,它可以扩展和/或与您的JSP内容联系。 最终结果将是两个页面的无缝集成。

Google自己的有关JSON的示例具有发出HTTP请求的良好示例。

阅读此书,很可能是您解决问题的方法

它说明了如何获取窗口的大小以及如何在JavaScript中管理窗口的滚动。

将GWT嵌入到旧的JSP中是否有意义? 将<div id =“ for.gwt” />放在JSP上的某个位置,然后导入JS。

尚不清楚您如何将JSP嵌入到GWT中。

我想知道框架中的诸如document.body.clientHeight之类的东西对您有帮助吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM