与新的“Microsoft Edge”浏览器相比,我更喜欢桌面 IE 界面,并且我已经按照自己想要的方式设置了 IE(广告拦截等)。但是,我并不想受到旧版 MSHTML/Trident 引擎的限制,IE 似乎默认使用该引擎。如何在 IE 中默认启用 EdgeHTML?
答案1
中有一个用于此选项about:flags
,但自从 IIRC 版本 10130 以来,该界面已无法使用,并且截至 7 月 24 日在 RTM 中仍然无法使用。
但是,此注册表设置仍然可以在 IE 中启用 EdgeHTML:
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main] “禁用随机飞行”=dword:00000001 “启用LegacyEdgeSwitching”=dword:00000001
编辑:在 Windows 1511(内部版本 10586)中,这不再起作用。
答案2
似乎没有任何方法(截至版本 10240)仍可在 IE 中执行此操作;about:flags
似乎已完全消失。但是(至少在企业版中),您可以编辑注册表以在 IE 中启用 EdgeHTML。但请注意,它并不完美;虽然正常浏览正常,但除非您使用 F12 开发工具更改用户代理字符串,否则浏览器会将自己标识为 Edge(而不是 IE)。F12 工具本身可能无法正常工作;网络日志记录等功能似乎已损坏,尝试切换出 Edge 文档模式可能会或可能不会起作用(我使用“模拟”选项卡比使用工具顶部栏右侧的下拉菜单获得更好的效果)。
以下是一些用于在 IE 中启用和禁用 EdgeHTML 的脚本命令。它们不需要提升权限运行,也不能以其他用户(如管理员)的身份运行:
reg add "HKCU\Software\Microsoft\Internet Explorer\Main" /v DisableRandomFlighting /t REG_DWORD /d 1 /f
reg add "HKCU\Software\Microsoft\Internet Explorer\Main" /v EnableLegacyEdgeSwitching /t REG_DWORD /d 1 /f
要恢复默认行为,只需清除(或删除)后者的值并重新启动 IE:
reg add "HKCU\Software\Microsoft\Internet Explorer\Main" /v EnableLegacyEdgeSwitching /t REG_DWORD /d 0 /f
编辑:这个 hack做在 Win10 Home 中可以工作,但是不是在 Win10 build 10586.29(版本 1511,也称为“十一月更新”)中工作。至少,在从 build 10240 升级后,我无法再让它在我的 Win10 Enterprise 机器上运行。如果有人知道如何让它在 10586 上运行,我将不胜感激!
答案3
Win10 11 月更新后的复杂伪解决方案;不推荐但大部分功能可用:用 EdgeHTML 等效库替换 MSHTML 库。这有效……与之前版本的早期破解一样好。开发工具有点混乱,拖放功能停止工作,但除此之外,它基本上可以解决问题。请注意,它不会更改 IE 的用户代理字符串,这意味着很多网站仍会认为您正在使用 Trident,而不仅仅是测试您的浏览器支持哪些 HTML/JS 功能。
- 关闭所有浏览器类型的程序(包括嵌入 MSHTML 的程序,如 Skype)。最好在启动系统后立即执行此操作,和/或以不同于平常的用户身份执行此操作。
- 以管理员身份获取以下文件的所有权:
C:\Windows\System32\mshtml.dll
、C:\Windows\System32\en-US\mshtml.dll.mui
、C:\Windows\SysWOW64\mshtml.dll
、C:\Windows\SysWOW64\en-US\mshtml.dll.mui
。您可以从提升的命令提示符下使用以下命令执行此操作:takeown /A /F <FILENAME>
。 - 对于每个文件,修改文件的权限,以便可以重命名文件。如何从提升的命令提示符执行此操作的一个示例(略微过头)是
icacls <FILENAME> /grant Administrators:F
- 对于每个文件,将其重命名为“备份”名称。例如,您可以使用命令(以管理员身份)
C:\Windows\System32\mshtml.dll
将其重命名为。C:\Windows\System32\mshtml.dll.bak
ren
- 创建具有原始文件名但指向文件的 EdgeHTML 版本的符号链接。例如,您可以使用以下命令:
mklink C:\Windows\System32\mshtml.dll C:\Windows\System32\edgehtml.dll
。请注意,mklink 不仅必须以管理员身份运行,还必须从运行CMD.EXE
;如果您使用的是 Powershell,请在 mklink 命令前加上前缀cmd /c
,例如cmd /c mklink C:\Windows\System32\mshtml.dll C:\Windows\System32\edgehtml.dll
此时重新启动在技术上并不是必需的,但仍然是明智之举。
答案4
我已成功在 Windows Server 2016 RTM 上创建符号链接,但默认情况下它缺少 Edge,就像 Windows 10 Enterprise ltsb 一样。我不得不直接在 System32 中创建它,因为 Program Files/Internet Explorer 中缺少 mshtml.dll。但浏览引擎测试页显示 Internet Explorer 11。恢复文件的先前版本并发现 edgehtml.dll 是一个幻影 dll,它实际上是重命名的 mshtml.dll,我查看了版本号,它是 11,而不是 14。这就是为什么网页将其重命名为 IE。也许这就是您无法在 IE 中启用 edgehtml.dll 的原因,因为它似乎完全不存在。如果您愿意,可以尝试在“详细信息”选项卡上检查 Windows 10 Enterprise ltsb 中文件 edgehtml.dll 的版本(如果是)。