最近在做北京现代项目的时候,遇到一个需求将韩国那边写好的网页嵌套到WPF程序中显示。

开始的时候使用的是第三方的浏览器控件:awesomium,在本地测试,显示没有问题。但是拿到客户现场,只显示半屏。修改各种高度,还是会出现问题,用远程桌面打开,显示正常,百思不得解。

换控件使用微软自带的浏览器控件WebBrowser,升级IE还是会出现显示半屏问题。

查看网页源码,页面显示高度是动态获取的,以下是网页中的JS源码
    var wHeight, header1, header2;
    wHeight = $(window).height();
    header1 = $("div.board_header").outerHeight();
    header2 = $("div.table_header").outerHeight();
    $("div.table_scroll").css("max-height", (wHeight - header1 - header2 - 1 - 40)  + "px");

max-height 获取的值是动态获取的,所以会导致以上的问题。

解决问题思路:页面加载完成,通过注入JS脚本,修改max-height,来显示完整网页。

源码如下:

/// <summary>
        /// 浏览器加载完成事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ibbWeb_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
        {
            try
            {
                dom = (mshtml.HTMLDocument)ibbWeb.Document; //定义HTML
                dom.documentElement.style.overflow = "hidden"; //隐藏浏览器的滚动条
                dom.body.setAttribute("scroll", "no"); //禁用浏览器的滚动条
                dom.parentWindow.execScript(@"window.onload = function(){ $('div.table_scroll').css('max-height', '910px'); setTimeout('window.location.href=window.location.href',"+refreshPageInterval+") }"); //向页面注入javascript语句
            }
            catch (Exception ex)
            {
                LogInfo.saveLog("加载浏览器控件异常:" + ex);
                return;
            }
        }

最新文章

  1. WIN7下查看CPU核心数
  2. WPF 变量绑定实现
  3. php 时间加减
  4. c#字符串转换为日期,支持任意字符串
  5. monkey(1)
  6. 删除所有表数据的sql语句
  7. javascript获取ckeditor编辑器的值(实现代码)
  8. C#读取注册表信息
  9. windows查看端口占用情况及查杀进程
  10. 3. SQL Server数据库状态监控 - 可用空间
  11. DNS查询相关
  12. Python 实现接口类的两种方式+邮件提醒+动态导入模块+反射(参考Django中间件源码)
  13. cdh日常维护常见问题及解决方案
  14. 在VS2017上对C++项目进行单元测试
  15. 物联网架构成长之路(15)-Jenkins部署SpringBoot
  16. IP addresses in C#
  17. Mo2C-tag
  18. j2se j2ee j2me
  19. Python开发【笔记】:git&amp;github 快速入门
  20. LambdaMART简介——基于Ranklib源码(一 lambda计算)

热门文章

  1. MarkDown 编辑数学公式
  2. 异步任务利器Celery(一)介绍
  3. [POJ 3581]Sequence
  4. 使用JS代码实现点击按钮下载文件
  5. Spring框架系列(二)之Bean的注解管理
  6. 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(2)
  7. CentOS Crontab(定时任务)
  8. PHP如何防止XSS攻击
  9. 使用C#开发C/S框架高级版添加新项目实例
  10. java日期转化