WebBrowser,挖坑,跳坑,填坑

最近在 C# Asp.net 平台上的一个项目中用到了 WebBrowser 控件。自然而然就进入了 一连串的坑了。用网络上一同行的话“用WebBrowse,就是在给自己挖坑”。

道术太浅,这个坑我还是跳了。


 需求:截取网页中的一部分,生成图片。

咣当咣当在本地机子码了一遍,后台用了 WebBrowser 控件。运行,一切OK。

  

然后就放到服务器上了,当然问题也就跟着来了...

在服务器上部署运行遇到如下问题,

 

发现坑一:页面在浏览器中打开正常,但某些图片在截图中没有显示出来

但是在本地上部署的和局域网内部署运行都OK,一开始,这个问题让我觉得有些奇葩,也是一脸懵逼。

开始寻找bug之旅了,我发现截图没有显示出来的图片都是被用做背景的图片(background-image),而 <img> 标签的图片都是正常的。

我开始怀疑是 background-image 中的图片比 <img> 标签的图片 加载慢,而导致以上问题的。

小测试一下,果不其然,真是这个问题。问了度娘一下,问题得到确认了,也弄清了原理。

在本地和局域网部署运行OK,加载速度很快,没发现问题,而在外网中运行,加载快慢就显现出来了,问题也就出来了。

 

 

发现坑二:网页中的圆角,浮动在截图中并未有效果

这个问题,也是让我一开始是 一脸懵逼 + 一头雾水的。

在本地运行是很OK的。到服务器上运行就这#样了。

很快,我就想应该是平台浏览器的内核问题,也就是 WebBrowser 控件的内核问题。但是都是基于 asp.net 平台的啊,一样的平台,一样的代码,how ?

又见了度娘一下,果不其然,WebBrowser 控件的内核是跟所部署运行的机子的IE浏览器内核是相关的,老版本的 IE 是不支持很多 CSS3 和 H5 新技能的。

我有感觉了,肯定是服务器的 IE 浏览器版本太 old 了。

查看了一下本地的IE版本,是 IE9。再查看一下服务器的 IE 版本,是 IE8。 噢,我的感觉是对了的。

            

 

立马就把服务器的 IE 浏览器更新,额... 一开始我是想更新到 IE9 和本地的同版本就好了... 一不小心,没刹住车,直接开到 IE10 了...

 

一开始,想想也不会有什么的吧,索性将就了...

一运行,又是一脸懵逼...

 

发现坑三:截图出现了两个很碍眼刺眼的滚动条,也就是 WebBrowser 打开的网页就是有滚动条的

不应该啊,又急着见度娘了,度娘带来的大神都说设置 “webBrowser.ScrollBarsEnabled = false” 就OK。可是这个答案对我的问题是没用的。

 

我想可能就是我把服务的 IE 浏览器更新过头了,应该 IE9 就OK了。我想 “webBrowser.ScrollBarsEnabled = false” 对 IE9 有用,对 IE10 就无效了。

又是 WebBrowser 的问题。

索性不管了 WebBrowser 了,目的是要解决掉滚动条,我就在原网页中的<body>做了一点点修改,修改了样式 “ <body style="overflow:hidden;"> ”,问题也就解决了。

 

总结:

挖坑跳坑,把坑填了,路途中是会学到很多东西的

 

补充一下知识

关于 background-image 和 <img>

 

 

 


 

本文原创作者:小明 

原创文链接:《WebBrowser,挖坑,跳坑,填坑》

转载于:https://www.cnblogs.com/youler/p/6803336.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python中用户尝试输入三次_用Python实现登录接口,允许尝试三次

项目需求描述&#xff1a;要求用户输入用户名和密码&#xff0c;认证成功后显示欢迎信息&#xff0c;如果连续输错三次则锁定用户名。逻辑流程图&#xff1a;实现代码&#xff1a;#!/usr/bin/env pythonimport sysaccount_file ‘account.txt‘lock_file ‘lock.txt‘# put a…

你可能会错过的3个重要AI趋势

来源&#xff1a;雷锋网以下3个趋势&#xff0c;目前可能尚未引起注意&#xff0c;但长期来看会产生重大影响。根据Gartner的一项调查&#xff0c;到2020年底&#xff0c;全球48&#xff05;的CIO将部署AI。尽管人们对AI和ML持乐观态度&#xff0c;但我仍然持怀疑态度。在可以预…

php flush nginx,Nginx+phpfastcgi下flush输出问题

最近由于业务需要,需要使用php的flush输出缓存刷新&#xff0c;处理浏览器超时问题.最初的测试代码如下:ob_start();//打开缓冲区for ($i10; $i>0; $i--){echo $i.‘‘;ob_flush();flush();sleep(1);}ob_end_flush();//输出并关闭缓冲die();本以为这样就能1秒钟输出一个数字…

线性代数知识点总结_线性代数导读+笔记

一些学习线性代数的心得和资源分享&#xff0c;供大家参考。资源Introduction to Linear Algebra, 5th Edition​math.mit.edu学线性代数主要的参考书&#xff0c;Strang 教授也算是网红了&#xff0c;讲课讲得十分浅显易懂&#xff0c;网上有配套的video&#xff0c;强烈推荐。…

5G通信网络专题报告:新一轮移动通信网络建设迎来高潮

报告来源&#xff1a;山西证券1. 移动通信网络概述1.1 移动通信网络行业界定异地间人与人、人与物、物与物进行信息的传递和交换称为通信。通信以获取信息为目的&#xff0c;实现信息传输所需的一切设备和传输媒介构成通信系统&#xff0c;通信系统大体包括终端和通信网络两部分…

Oracle 通过字段名查询其所在的表

select owner , table_name , column_name from dba_tab_columns where column_nameLOG_TYPE ;转载于:https://www.cnblogs.com/linnuo/p/6812339.html

python标准库 下载_下载python标准库--python

1 #coding:utf-82 importurllib23 importos,sys4 from BeautifulSoup import BeautifulSoup #For processing HTML5 from bs4 importBeautifulSoup6 classBookSave():7 8 dir:html文件保存目录 url&#xff1a;index.html目录 static_url:js、css所在目录的上级目录9 distingui…

马赛克战——利用人工智能和自主系统来实施决策中心作战

知远战略与防务研究所 沐俭/编译自&#xff1a;美国战略与预算评估中心网站【知远导读】本篇推送编辑节选自美国战略与预算评估中心2020年2月11日发布的同名研究报告&#xff0c;报告由CSBA高级研究员布莱恩克拉克等撰写。报告认为&#xff0c;美军目前这种以一体化、多功能集…

java动态内存分部,如何利用Java实现动态内存分配?

一&#xff0e;实验原理原理&#xff1a;内存以分区为单位&#xff0c;每个分区可由(ID&#xff0c;addr&#xff0c;size&#xff0c;)进行描述class sector{int id -1;//记录作业的编号int addr0;//内存的起始位置int size100;//分配的内存大小}建立两个链表avail和busy。av…

codevs 1283 等差子序列

http://codevs.cn/problem/1283/ 题目描述 Description给一个 1 到 N 的排列{Ai}&#xff0c;询问是否存在 1<p1<p2<p3<p4<p5<…<pLen<N&#xff08;Len>3&#xff09;&#xff0c;使得 Ap1,Ap2,Ap3,…ApLen 是一个等差序列。 输入描述 Input Descr…

postgresql两个列模糊比较_JDBC进阶(一):批处理与获取自增长列的值

一、批处理假如要插入一万条记录到数据表中&#xff0c;那么使用普通的方法就要执行一万次插入操作&#xff0c;这样会频繁打开和关闭数据库连接&#xff0c;导致执行速度变慢。因此可以使用批处理机制将多条语句一次性提交给数据库批量处理。批处理的相关API&#xff1a;void …

深度解读后疫情时代下,零售行业的趋势及技术前瞻

来源&#xff1a;苏宁零售技术研究院作者&#xff1a;王俊杰、罗海棠博士、郭永慧、池曙强、张绿漪博士新冠状病毒肺炎疫情发展严峻&#xff0c;短时间内席卷全国。民众在政府的号召下选择了尽量不出行&#xff0c;餐饮、旅游、线下零售等行业面临严峻考验。但同时&#xff0c;…

php 两个数组中不同的元素,PHP实现查询两个数组中不同元素的方法

这篇文章主要介绍了PHP实现查询两个数组中不同元素的方法,涉及PHP数组差集运算与数组合并的相关技巧,需要的朋友可以参考下本文实例讲述了PHP实现查询两个数组中不同元素的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;<?php $a array("max_allow_dia…

JAVA-配置path环境

配置path环境变量变的目的是什么&#xff1f; 控制台可以在任意的路径下都可以找到java的开发工具。 为了说明几个JDK环境变量的作用&#xff0c;这里先给出环境变量的定义 环境变量&#xff1a; 环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数&#xff0c;比…

c井语言python_【一点资讯】C井风靡一时的编程语言和现在最火编程语言Python!谁更强? www.yidianzixun.com...

步入正题&#xff1a; 欢迎提出更简单或者效率更高的方法基础系列&#xff1a;(这边重点说说Python&#xff0c;上次讲过的东西我就一笔带过了)1.输出类型转换Python写法&#xff1a;2.字符串拼接 拼接输出方式python&#xff1a;NetCore这次为了更加形象对比&#xff0c;一句一…

add php support,wordpress函数add_post_type_support()用法示例

add_post_type_support( string $post_type, string|array $feature )Register support of certain features for a post type.描述All core features are directly associated with a functional area of the edit screen, such as the editor or a meta box. Features includ…

170页PPT入门深度强化学习! 汪荣贵 图灵人工智能 昨天

转自&#xff1a;中国图象图形学报什么是强化学习&#xff1f;和其他学习方法相比&#xff0c;有何不同与特色&#xff1f;深度学习如何与强化学习结合&#xff1f;并各取所长&#xff1f;深度强化学习会成为未来引领智能计算的方法吗&#xff1f;深度强化学习将强化学习和深度…

matlab 文件路径问题

1. fullfile&#xff1a;路径补全 f fullfile(filepart1,...,filepartN) 显然可变参数之间填充的路径分隔符&#xff08;path separator&#xff09;&#xff0c;会根据操作系统而变化&#xff1a; windows&#xff1a;/Linux&#xff1a;\2. fileparts&#xff1a;路径拆分 […

php querystring使用,node.js中的querystring.parse方法使用说明_node.js

方法说明&#xff1a;将字符串转成对象。说白了其实就是把url上带的参数串转成数组对象。(看例子就知道咯)语法&#xff1a;代码如下:querystring.parse(str, [sep], [eq], [options])接收参数&#xff1a;str 欲转换的字符串sep 设置分隔符&#xff0c;默认为 ‘&eq 设置赋…

钟南山院士应邀向欧洲同仁全方位解析新冠肺炎(配中文文字版)

来源&#xff1a;ERS欧洲呼吸学会尊敬的同事们&#xff0c;女士们&#xff0c;先生们&#xff1a;非常荣幸能有机会与您分享我们处理中国境内COVID19感染的相关经验。在这种情况下&#xff0c;我仍然在前线工作&#xff0c;所以准备这个PPT比较匆忙。我只能告诉您一些事实、某些…