Webbrowser指定IE内核版本(更改注册表)

1:  WebBrowser 响应回车Enter键(兼容Silverlight)

在Form放置一个ApplicationEvents控件,
在OnMessage事件中写下面的代码:

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函数

 

posted @ 2020-10-15 11:59  _成飞  阅读(640)  评论(0编辑  收藏  举报