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

  • 相关阅读:
    html5储存篇(二)
    html5 存储篇(一)
    【刷题计划1】【poj分类转载】【8月20号开始】
    【如何搭建一个属于自己的独立博客~~~基于windows系统,使用wordpress建站】【弱菜一枚~~大神请路过】
    第六章 6.6 图的应用
    第六章 6.5 图的遍历
    第六章 6.4 图的存储结构
    poj 2488 A Knight's Journey 【dfs】【字典序】【刷题计划】
    【Educational Codeforces Round 33 B】Beautiful Divisors
    【 Educational Codeforces Round 33 A】Chess For Three
  • 原文地址:https://www.cnblogs.com/sttchengfei/p/13819773.html
Copyright © 2020-2023  润新知