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
總結
以上是生活随笔為你收集整理的WebBrowser,挖坑,跳坑,填坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【模板】快速幂取模
- 下一篇: 纯js实现html转pdf