c# - 我的浏览器加载 CSS 时出现问题,我不知道该怎么办
问题描述
好的,所以我正在使用 Visual Studio 2019 在 Winforms C# 中制作浏览器,我注意到在加载某些具有更高级 UI 的网站时,它要么看起来很奇怪,要么根本不加载。我不确定这是为什么。
这也是我关于堆栈溢出的第一个问题,所以我不确定它是如何工作的。
解决方案
WebBrowser 控件的问题在于默认情况下它以 IE7 呈现模式呈现输出。我也重现了你的问题。
如果您不覆盖注册表中的功能浏览器模拟设置,将使用 Internet Explorer 7 渲染。
打开注册表,我用的键是:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
对于您的用户(当前用户),仅使用此键:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
对于计算机/服务器上的所有用户,请使用此密钥:
在 64 位应用程序上的 64 位应用程序或 32 位计算机上的 32 位应用程序上:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
在 64 位机器上的 32 位应用程序上:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION价值:
11001 (0x2AF9) Internet Explorer 11。无论 !DOCTYPE 指令如何,网页都以 IE11 边缘模式显示。
9999 (0x270F) Windows Internet Explorer 9。无论 !DOCTYPE 指令如何,网页都以 IE9 标准模式显示。
因为我的可执行文件名为 browserloadingcss.exe,所以我添加了一个名为 browserloadingcss.exe 且值为 11001 的 DWORD 条目(以使用 Internet Exlporer 11-rendering)。我也试过设置值9999,它可以正常渲染。
然后我运行我的程序并得到以下结果图:
推荐阅读
- git - 如何对 git 分支输出进行版本排序(与通常的字母/字典排序相比)
- laravel - 未找到基表或视图:1146 表“laravel8.brand”不存在(SQL:选择计数(*)
- c++ - 为什么 `static_pointer_cast` 不能与 ADL 一起使用,但需要显式的 `std::`?
- ios - watchOS:获取 EventKit 日历 - 未获取所有日历
- ssl - 两个不同主机的两个子域
- javascript - javascript将画布效果插入数组?
- javascript - onClick="return abc()" 和 onClick="abc()" 的区别
- yaml - YAML 标准有什么用?我只是谷歌,但我找不到答案
- javascript - iMacros 向下滚动 Instagram 上的“关注者”弹出窗口
- python - 更新存储在 json dict 中的多个值的 Pythonic 方法