我的网站应该只适用于IE8及更高版本。 如何使用开发人员工具将版本更改的使用限制为用户? 有没有办法使用Jquery限制它?
这是我的javascript,用于查找用户代理的浏览器模式和文档模式,但我没有限制用户将浏览器和文档模式更改为IE7。
<script type="text/javascript">
/*
* Author: Rob Reid
* CreateDate: 20-Mar-09
* Description: Little helper function to return details about IE 8 and its various compatibility settings either use as it is
* or incorporate into a browser object. Remember browser sniffing is not the best way to detect user-settings as spoofing is
* very common so use with caution.
*/
$(function(){
var browserInfo = IEVersion();
console.log($('meta'));
alert(browserInfo.DocMode);
$('meta').attr('rel','IE=7');
});
function IEVersion()
{
var _n = navigator, _w = window, _d = document;
var version = "NA";
var na = _n.userAgent;
var ieDocMode = "NA";
var ie8BrowserMode = "NA";
// Look for msie and make sure its not opera in disguise
if (/msie/i.test(na) && (!_w.opera))
{
// also check for spoofers by checking known IE objects
if (_w.attachEvent && _w.ActiveXObject)
{
// Get version displayed in UA although if its IE 8 running in 7 or compat mode it will appear as 7
version = (na.match(/.+ie\s([\d.]+)/i) || [])[1];
// Its IE 8 pretending to be IE 7 or in compat mode
if (parseInt(version) == 7)
{
// documentMode is only supported in IE 8 so we know if its here its really IE 8
if (_d.documentMode)
{
version = 8; //reset? change if you need to
// IE in Compat mode will mention Trident in the useragent
if (/trident\/\d/i.test(na))
{
ie8BrowserMode = "Compat Mode";
// if it doesn't then its running in IE 7 mode
} else
{
ie8BrowserMode = "IE 7 Mode";
}
}
} else if (parseInt(version) == 8)
{
// IE 8 will always have documentMode available
if (_d.documentMode) { ie8BrowserMode = "IE 8 Mode"; }
}
// If we are in IE 8 (any mode) or previous versions of IE we check for the documentMode or compatMode for pre 8 versions
ieDocMode = (_d.documentMode) ? _d.documentMode : (_d.compatMode && _d.compatMode == "CSS1Compat") ? 7 : 5; //default to quirks mode IE5
}
}
return {
"UserAgent": na,
"Version": version,
"BrowserMode": ie8BrowserMode,
"DocMode": ieDocMode
}
}
function DisplayInfo()
{
var browserInfo = IEVersion();
alert('UserAgent: ' + browserInfo.UserAgent + '\nVersion: ' + browserInfo.Version + '\nBrowserMode: ' + browserInfo.BrowserMode + '\nDocMode: ' + browserInfo.DocMode);
}
答案 0 :(得分:1)
尽量不要因为这会惹恼许多可能的用户并迫使他们进入竞争对手的网站。
不可否认,如果您使用的是ActiveX控件,则可能无法对所选的浏览器做很多事情。
答案 1 :(得分:0)
答案 2 :(得分:0)
如何使用jquery
来限制它
不可能。无论是好的还是坏的都没关系。你无法通过jQuery或Javascript更改浏览器设置。
用户何时尝试使用开发人员工具更改版本
我认为你可以做的就是使用这个元标记作为头脑中的第一个:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
这将迫使IE退出兼容模式并使用最新版本,无论它是什么。
当您使用像ASP.Net这样的服务器端框架时,您无法确定它是否仍然是头部内的第一个标记。因此,例如在ASP.Net中,您可以在PreInit中编写它:
HttpContext.Current.Response.AddHeader("X-UA-Compatible", "IE=Edge")
或者,您也可以从网络服务器推送标题,例如IIS。