为什么要文档.GetElementsByClassName在本地驱动器上工作,但在网络驱动器上不起作用

Why does document.GetElementsByClassName work on local drive but not on a network drive?

本文关键字:驱动器 工作 不起作用 网络 文档 GetElementsByClassName 为什么      更新时间:2023-09-26

(已经看到类似的问题,但这不是同一个问题)。

这是一个旨在在本地浏览器中运行的HTML页面(即双击文件资源管理器中的页面),不提供

页面链接到一个简单的JS文件,其中包含几个函数。如果页面和脚本位于本地驱动器上,则按预期工作。但是当它们在网络驱动器上时,其中一个函数会异常失败'对象不支持属性或方法'getElementsByClassName'。函数是:

function DisplaySection(section)
{
  var sections = document.getElementsByClassName("SECTION");
  for (var i = 0; i < sections.length; i++)
  {
    sections[i].style.display = sections[i].id == section ? "block" : "none";
  }
}

确认:JS函数在两个环境中都是可见的,并且正确连接到文档-我可以使用F12调试器进入失败的函数。

欢迎指教

这可能是因为IE中的兼容性视图(in),对于内部网资源,默认上。因此IE进入兼容模式,其中没有getElementsByClassName

你可以试着让IE政策*改变,或者试着说服IE服从:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

(这个答案声称可以工作),或者您可以使用querySelectorAll:

var sections = document.querySelectorAll(".SECTION");

querySelectorAll早在IE8就存在了,而getElementsByClassName直到IE9才加入。

*这里的"策略"是指您的组织的活动目录策略,它可以决定此IE设置。


或者,当然,使用一个默认情况下不会做蠢事的浏览器</rant>