c#使用Cef在winform上加载html页面(二)——出现空白页面

调试CefSharp时遇到的问题:

CefSharp访问在线的网站,均可正常显示。而当Url切换为本地html文件时,窗口变空白,另外将本地html文件的完整路径粘贴到Chrome,Edge,IE中均可正常显示。说明html代码没问题。

以下最上面为Chrome,中间为Edge,下面为IE。

c#使用Cef在winform上加载html页面(二)——出现空白页面

仔细观察各自地址栏显示内容可以发现,前两款浏览器都对路径进行了加工处理,IE则是原封未动;

比如Chrome将字符#转为字符%23(#的UrlEncode,UTF8编码),还在路径前加了"file:///"字符串,上图中未显示处理,实际有。

Edge浏览器只是在路径前加了"file:///"字符串。

看到这个区别后,试着在代码中将路径中的#替换为%23后一切正常。

 

总结:

当本地html文件在常规浏览器中可以正常访问,在cefsharp中无法显示时,请检查文件路径中是否包含特殊字符,如有,试着将特殊字符替换为%加上该字符的16进制ASCII码(即该字符的UrlEncode,UTF8编码)试一试,说不定问题就解决了。