Javascript Internet Explorer 11在两台机器上的行为不同

Javascript Internet Explorer 11在两台机器上的行为不同,javascript,internet-explorer,dom,getelementsbyclassname,Javascript,Internet Explorer,Dom,Getelementsbyclassname,我正在我的机器上运行IE 11。我有一个使用GetElementsByCassName的网页。当我在我的机器上访问网页时,页面被提供,并且工作正常(它执行getElementsByClassName)。如果我在另一台机器上使用IE访问同一个网页,但它找不到getElementsByClassName方法。如果我将提供给浏览器的代码保存到故障机器上并访问该机器,则保存的页面工作正常(它执行elemmentsByClassName)。发生了什么事?如何告诉浏览器使用具有getElementsByCl

我正在我的机器上运行IE 11。我有一个使用GetElementsByCassName的网页。当我在我的机器上访问网页时,页面被提供,并且工作正常(它执行getElementsByClassName)。如果我在另一台机器上使用IE访问同一个网页,但它找不到getElementsByClassName方法。如果我将提供给浏览器的代码保存到故障机器上并访问该机器,则保存的页面工作正常(它执行elemmentsByClassName)。发生了什么事?如何告诉浏览器使用具有getElementsByClassName的DOM或javascript版本

var list = document.getElementsByClassName("mrClickableRow");

document.getElementsByClassName
可从IE 9获得,您确定要将JS与
集成吗


注意:在
之前使用
(车身关闭标签)

对于兼容性问题,您可以使用此功能

window.getElementsByClassName = function(node, classname) {
    var a = [];
    var re = new RegExp('(^| )' + classname + '( |$)');
    var els = node.getElementsByTagName("*");
    for (var i = 0, j = els.length; i < j; i++)
        if (re.test(els[i].className)) a.push(els[i]);
    return a;
}

if (!document.getElementsByClassName) {
    document.getElementsByClassName = function(className) {
        return window.getElementsByClassName(document.body.parentNode, className);
    };
}
window.getElementsByClassName=函数(节点,类名){
var a=[];
var re=new RegExp('(^ |)'+classname+'(|$);
var els=node.getElementsByTagName(“*”);
对于(变量i=0,j=els.length;i

但是请注意,此函数与内置函数略有不同:当您使用内置的
document.getElementsByCassName
函数时,它返回一个
HTMLCollection
。如果随后删除HTMLCollection中包含的元素类,它也将从HTMLCollection中删除。

请确保IE使用正确的文档模式呈现页面,否则,它可能会模拟旧的DOM-API,从而导致一些问题


通过在IE中点击F12或通过“设置”菜单选择来打开开发人员工具。然后转到仿真选项卡,查看文档模式下拉列表。

请参阅:将
添加到页面的
。还考虑优雅地降级,如<代码>((.Do.GoelEntSersByCaleNeX)……/代码>),取决于在检索元素之后如何使用这些元素,可以考虑使用灵活和向后兼容的<代码>文档。QueRelestOrthORL(“.MrCrCurabror”)使用了这个技巧。现在所有机器都正常工作。当开发人员工具处于非活动状态时,IE始终使用安装的最新版本。或者这可以在设置中的某个地方更改吗?@a因此,它可以根据特定于给定计算机上给定用户配置文件的兼容性列表而有所不同。任何配置为在兼容性视图中显示的站点都将呈现为IE8中的站点。