zoukankan      html  css  js  c++  java
  • 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_MACHINESOFTWAREMicrosoftInternet ExplorerMAINFeatureControlFEATURE_BROWSER_EMULATION

    对于64位程序

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

  • 相关阅读:
    linux内核中GNU C和标准C的区别
    linux内核中GNU C和标准C的区别
    Getting start with dbus in systemd (02)
    Getting start with dbus in systemd (01)
    Getting start with dbus in systemd (03)
    物理内存相关的三个数据结构
    数据类型对应字节数(32位,64位 int 占字节数)
    Linux kernel 内存
    共模电感的原理以及使用情况
    [原创]DC-DC输出端加电压会烧毁
  • 原文地址:https://www.cnblogs.com/sttchengfei/p/13819773.html
Copyright © 2011-2022 走看看