Javascript 如何仅为IE 8运行脚本

Javascript 如何仅为IE 8运行脚本,javascript,jquery-mobile,internet-explorer-8,Javascript,Jquery Mobile,Internet Explorer 8,我有一个js文件,只想在浏览器是IE8的情况下运行一些代码。我有办法做到这一点吗 现在我只有这个,但它适用于所有ie浏览器: if ($.browser.msie) { //do stuff for IE 8 } 特定于浏览器的代码几乎从来都不是一个好主意。但是,如果必须这样做,可以将代码放入条件注释中 特定于浏览器的代码几乎从来都不是一个好主意。但是,如果必须这样做,可以将代码放入条件注释中 请参见 及 以下是简短的(est?)答案: 看 及 以下是简短的(est?)答案:

我有一个js文件,只想在浏览器是IE8的情况下运行一些代码。我有办法做到这一点吗

现在我只有这个,但它适用于所有ie浏览器:

if ($.browser.msie) {
    //do stuff for IE 8
} 

特定于浏览器的代码几乎从来都不是一个好主意。但是,如果必须这样做,可以将代码放入条件注释中


特定于浏览器的代码几乎从来都不是一个好主意。但是,如果必须这样做,可以将代码放入条件注释中


请参见 及

以下是简短的(est?)答案:

看 及

以下是简短的(est?)答案:


如果页面小于IE9,是否可以在标题中调用以重定向页面?我发现自己经常为使用IE6-10的客户这样做

在我调用的文档头中

<!--[if IE 7]>  <link rel="()" type="()" href="(Your link here.)"><![endif]--> 

另一种选择是垫片或polyfil。互联网上有许多工具可以帮助弥合现代网页设计和旧浏览器之间的鸿沟。
例如。

如果页面小于IE9,是否可以在页眉中调用以重定向页面?我发现自己经常为使用IE6-10的客户这样做

在我调用的文档头中

<!--[if IE 7]>  <link rel="()" type="()" href="(Your link here.)"><![endif]--> 

另一种选择是垫片或polyfil。互联网上有许多工具可以帮助弥合现代网页设计和旧浏览器之间的鸿沟。
例如。

您可以使用条件注释(通过以下方式)完成此操作:


如果($('html').is('.ie8')){
...
}
或者在不干扰html的情况下(通过):


/*@抄送
@如果检测到(@_jscript_version==5.8){//IE8
//做点什么
}
@*/

您可以使用条件注释(通过):


如果($('html').is('.ie8')){
...
}
或者在不干扰html的情况下(通过):


/*@抄送
@如果检测到(@_jscript_version==5.8){//IE8
//做点什么
}
@*/

好了,各位,我自己解决了这个问题:

if ($.browser.msie && $.browser.version == 8) {
    //my stuff

} 
if (navigator.userAgent.indexOf('MSIE 8.0') !== -1) {
  // this clause will only execute on IE8
}

好了,各位,我自己解决了这个问题:

if ($.browser.msie && $.browser.version == 8) {
    //my stuff

} 
if (navigator.userAgent.indexOf('MSIE 8.0') !== -1) {
  // this clause will only execute on IE8
}

您可以这样做:

if ($.browser.msie && $.browser.version == 8) {
    //my stuff

} 
if (navigator.userAgent.indexOf('MSIE 8.0') !== -1) {
  // this clause will only execute on IE8
}

您可以这样做:

if ($.browser.msie && $.browser.version == 8) {
    //my stuff

} 
if (navigator.userAgent.indexOf('MSIE 8.0') !== -1) {
  // this clause will only execute on IE8
}

您可以使用document.documentMode获取IE的版本

switch(document.documentMode)
    {
        case 8:
            //do something with IE8
            break;
        case 9:
            //do something with IE9
            break;
        case 10:
            //do something with IE10
            break;  
        case 11:
            //do something with IE11
            break;
        default:
            console.log('Other browsers...');
    }

有关文档,请参阅您可以使用document.documentMode获取IE的版本

switch(document.documentMode)
    {
        case 8:
            //do something with IE8
            break;
        case 9:
            //do something with IE9
            break;
        case 10:
            //do something with IE10
            break;  
        case 11:
            //do something with IE11
            break;
        default:
            console.log('Other browsers...');
    }

有关文档,请参阅

$。浏览器已弃用,因此您无法在新的jQuery版本中使用此对象属性,因此要支持此属性,您必须使用jQuery迁移插件。以下是 链接

$。浏览器已弃用,因此您不能在新的jQuery版本中使用此对象属性,因此要支持此属性,您必须使用jQuery迁移插件。以下是 链接

尝试这样使用

<script type="text/javascript">
    if(/MSIE \d|Trident.*rv:/.test(navigator.userAgent))
        document.write('<script src="somescript.js"><\/script>');
</script>

if(/MSIE\d | Trident.*rv:/.test(navigator.userAgent))
文件。写(“”);
尝试这样使用

<script type="text/javascript">
    if(/MSIE \d|Trident.*rv:/.test(navigator.userAgent))
        document.write('<script src="somescript.js"><\/script>');
</script>

if(/MSIE\d | Trident.*rv:/.test(navigator.userAgent))
文件。写(“”);


为什么需要专门检测IE8?我的一些jquery移动代码不适用于IE 8(但适用于IE 9和10),因此如果是IE 8,我想重定向到其他页面。感谢这在jQuery的新版本中也不起作用,因为它们删除了版本1.9中的
$。浏览器
。我建议您将您的问题从“如何在IE8中执行某些操作”转到“如何在执行此操作时修复IE8”您会惊讶于这样的知识……我们所做的可能不是最好的。。。我们使用一个决定浏览器版本的PHP脚本。(我们使用PHP是因为我们的数据库存储特殊的代理、沙盒IE设置或客户IT中的一些奇怪的东西)。所以我们有一个浏览器版本,它作为BODY上的类提供给JS(和CSS)。通过这种方式,我们告诉jQuery运行我们需要的代码,然后在body.IE8上运行函数X,以便只在需要时执行它。在函数或触发事件中,我们可以通过$(body.IE8.length)或$(this.nextest(.IE8.length)进行测试…为什么需要专门检测IE8?我的一些jquery移动代码不适用于IE8(但适用于IE9和10),所以如果是IE8,我想重定向到其他页面。感谢这在jQuery的新版本中也不起作用,因为它们删除了版本1.9中的
$。浏览器
。我建议您将您的问题从“如何在IE8中执行某些操作”转到“如何在执行此操作时修复IE8”您会惊讶于这样的知识……我们所做的可能不是最好的。。。我们使用一个决定浏览器版本的PHP脚本。(我们使用PHP是因为我们的数据库存储特殊的代理、沙盒IE设置或客户IT中的一些奇怪的东西)。所以我们有一个浏览器版本,它作为BODY上的类提供给JS(和CSS)。通过这种方式,我们告诉jQuery运行我们需要的代码,然后在body.IE8上运行函数X,以便只在需要时执行它。在函数或触发事件中,我们可以通过$(body.IE8.length)或$(this.closest(.IE8.length)进行测试……我如何将此条件放置在js文件中而不是html中。谢谢如果你必须把条件代码放在你的JS中,你可以看看这个链接:@RDoolabh,正如你所知,IE10停止了支持的条件注释,比如this@Ian是的,这是一个很好的观点。这仍然适用于IE8,但不要尝试使用9以上的版本号,因为它将被忽略。由于这些工作方式是,所有不理解它们的浏览器都会将内容视为注释,因此IE10和未来的浏览器仍会忽略此块。@seanmk我想我的意思只是告诉OP,条件注释不能普遍使用,虽然这可能适用于他们的确切问题,但我如何将此条件放在js文件中而不是html中。谢谢如果你必须把条件代码放在你的JS中,你可以看看这个链接:@RDoolabh,正如你所知,IE10停止了支持的条件注释,比如this@Ian是的,这是一个很好的观点。这仍然适用于IE8,但不要尝试使用9以上的版本号,因为它将被忽略。自