Internet Explorer 11在两台计算机上的行为不同

时间:2016-05-03 18:54:18

标签: javascript internet-explorer dom getelementsbyclassname

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

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

3 个答案:

答案 0 :(得分:2)

确保IE使用正确的文档模式呈现您的页面,如果没有,它可以模拟旧的DOM-API,这可能会导致一些问题。

通过在IE中点击F12或通过设置菜单选择它来打开您的开发者工具。然后转到Emulation-tab并查看Document Mode-downdown。

答案 1 :(得分:0)

IE 9中提供了

document.getElementsByClassName,您确定将JS与<script type="text/javascript">集成在一起吗?

P.S。在<script>(正文结束标记)

之前使用</body>

答案 2 :(得分:0)

有关兼容性问题,您可以使用此功能。

mat = np.array(
    [[0]*3]*3,
    dtype=[('MSFT','float'),('CSCO','float'),('GOOG','float')]
    )

但请注意,此函数与内置函数略有不同:使用内置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); }; } 函数时,它会返回document.getElementsByClassName。如果然后删除HTMLCollection中包含的元素的类,它也会从HTMLCollection中删除。

相关问题