html指定ie内核,指定Webbrowser控件所用IE内核版本

如果电脑上安装了IE8或者之后版本的IE浏览器,在Visual Studio Webbrowser控件默认使用IE7兼容模式来显示网页内容。解决方法是在注册表中为你的进程指定引用IE的版本号。

比如我的程序叫做a.exe

对于32位Windows OS操作系统:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

对于64位Windows OS操作系统

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

但是经过我们测试,DWORD值设置为0或者15000时,IE都指定的是本机安装的IE版本,如果版本是IE11则Webbrowser控件就用的是IE11。

/*

* @desc   判断浏览器的版本以及浏览器内核

* @author wangyanling

* @date   2014年7月4日

*/

var browser = function () {

var agent = navigator.userAgent.toLowerCase(),

opera = window.opera,

browser = {

//检测当前浏览器是否为IE

ie: /(msie\s|trident.*rv:)([\w.]+)/.test(agent),

//检测当前浏览器是否为Opera

opera: (!!opera && opera.version),

//检测当前浏览器是否是webkit内核的浏览器

webkit: (agent.indexOf(' applewebkit/') > -1),

//检测当前浏览器是否是运行在mac平台下

mac: (agent.indexOf('macintosh') > -1),

//检测当前浏览器是否处于“怪异模式”下

quirks: (document.compatMode == 'BackCompat')

};

//检测当前浏览器内核是否是gecko内核

browser.gecko = (navigator.product == 'Gecko' && !browser.webkit && !browser.opera && !browser.ie);

var version = 0;

// Internet Explorer 6.0+

if (browser.ie) {

var v1 = agent.match(/(?:msie\s([\w.]+))/);

var v2 = agent.match(/(?:trident.*rv:([\w.]+))/);

if (v1 && v2 && v1[1] && v2[1]) {

version = Math.max(v1[1] * 1, v2[1] * 1);

} else if (v1 && v1[1]) {

version = v1[1] * 1;

} else if (v2 && v2[1]) {

version = v2[1] * 1;

} else {

version = 0;

}

//检测浏览器模式是否为 IE11 兼容模式

browser.ie11Compat = document.documentMode == 11;

//检测浏览器模式是否为 IE9 兼容模式

browser.ie9Compat = document.documentMode == 9;

//检测浏览器模式是否为 IE10 兼容模式

browser.ie10Compat = document.documentMode == 10;

//检测浏览器是否是IE8浏览器

browser.ie8 = !!document.documentMode;

//检测浏览器模式是否为 IE8 兼容模式

browser.ie8Compat = document.documentMode == 8;

//检测浏览器模式是否为 IE7 兼容模式

browser.ie7Compat = ((version == 7 && !document.documentMode) || document.documentMode == 7);

//检测浏览器模式是否为 IE6 模式 或者怪异模式

browser.ie6Compat = (version 

browser.ie9above = version > 8;

browser.ie9below = version 

}

// Gecko.

if (browser.gecko) {

var geckoRelease = agent.match(/rv:([\d\.]+)/);

if (geckoRelease) {

geckoRelease = geckoRelease[1].split('.');

version = geckoRelease[0] * 10000 + (geckoRelease[1] || 0) * 100 + (geckoRelease[2] || 0) * 1;

}

}

//检测当前浏览器是否为Chrome, 如果是,则返回Chrome的大版本号

if (/chrome\/(\d+\.\d)/i.test(agent)) {

browser.chrome = +RegExp['\x241'];

}

//检测当前浏览器是否为Safari, 如果是,则返回Safari的大版本号

if (/(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i.test(agent) && !/chrome/i.test(agent)) {

browser.safari = +(RegExp['\x241'] || RegExp['\x242']);

}

// Opera 9.50+

if (browser.opera)

version = parseFloat(opera.version());

// WebKit 522+ (Safari 3+)

if (browser.webkit)

version = parseFloat(agent.match(/ applewebkit\/(\d+)/)[1]);

//检测当前浏览器版本号

browser.version = version;

return browser;

}();

在MFC程序中嵌入浏览器控件都是IE内核,但不同客户端IE版本不同将会导致WEB网页的兼容问题。为了解决该问题,可以使用WebKit的链库,主要是针对嵌入Chrome浏览器控件。可在http://www.magpcss.net/cef_downloads/下载相应的库。更多资料可参见CEF中文教程(google chrome浏览器控件) -- CEF简介,http://www.voidcn.com/article/p-voowgrbk-rw.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值