Webbrowser指定IE内核版本(更改注册表)
1: WebBrowser 响应回车Enter键(兼容Silverlight)
在Form放置一个ApplicationEvents控件,
在OnMessage事件中写下面的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | uses ActiveX procedure TForm1 . ApplicationEvents1Message( var Msg: tagMSG; var Handled: Boolean ); const StdKeys = [VK_TAB, VK_RETURN, VK_DELETE, VK_BACK]; { standard keys } ExtKeys = [VK_LEFT, VK_RIGHT]; { extended keys } fExtended = $01000000 ; { extended key flag } begin Handled := False ; with Msg do if ((Message > = WM_KEYFIRST) and (Message <= WM_KEYLAST)) and ((wParam in StdKeys) or {$IFDEF VER120}(GetKeyState(VK_CONTROL) < 0) or {$ENDIF} (wParam in ExtKeys) and ((lParam and fExtended) = fExtended)) then try if IsChild(WebBrowser1 . Handle, hWnd) then { handles all browser related messages } begin with WebBrowser1 . Application as IOleInPlaceActiveObject do Handled := TranslateAccelerator(Msg) = S_OK; if not Handled then begin Handled := True ; TranslateMessage(Msg); DispatchMessage(Msg); end ; end ; except end ; end ; |
2: 如果电脑上安装了IE8或者之后版本的IE浏览器,Webbrowser控件会使用IE7兼容模式来显示网页内容。解决方法是在注册表中为你的进程指定引用IE的版本号。
比如我的程序叫做a.exe
对于32位程序
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
对于64位程序
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
在对应的路径下添加你程序名字,如a.exe为名的value,DWORD值。
值选项:
10000(0×2710) IE10
9999 (0x270F) IE9 忽略html5
9000 (0×2328) IE9
8888 (0x22B8) IE8 忽略html5
8000 (0x1F40) IE8
7000 (0x1B58) IE7
3: 屏蔽脚本错误
1.什么是javascript脚本错误
1.1 概述
JavaScript脚本错误包含“运行时错误”和“语法错误”。
1.2 JavaScript“语法错误”
JavaScript语法错误是指当 JavaScript语句违反了 JavaScript脚本语言的一条或多条语法规则时导致的错误。JavaScript语法错误发生在程序编译阶段,在开始运行该程序之前。
1.3 JavaScript“运行时错误”
JavaScript运行时错误是指当 JavaScript脚本试图执行一个系统不能运行的动作时导致的错误。当正在运行脚本、计算变量表达式、或者正在动态分配内存时出现 JavaScript运行时错误时。
2. 为什么要屏蔽javascript脚本错误?
由于开发海纳产品时,使用WebBrowser和CHtmlView来展示页面,进行填表等操作;但是由于打开的页面大多是其他用户的CMS页面,所以难免有些有脚本错误,于是决定要来屏蔽脚本错误,提升产品的易用性和友好性。
3. 怎么去屏蔽javascript脚本错误?
3.1 使用SetSilent函数
使用WebBrowser或CHtmlView的SetSilent函数可以达到屏蔽脚本错误的目的,不过这种情况,其它提示信息也都不显示了,例如使用alert进行的错误提示。
如果你觉得这样能满足你,那么推荐使用这种方法,简单啊!
3.2 重载IOleCommandTarget的Exec函数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!