(已经看过similar question,但这不是同一个问题。)
这是一个打算在本地浏览器中运行的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调试器进入失败的函数。
非常欢迎任何指示。
答案 0 :(得分:3)
这可能是因为IE中的(in)兼容性视图,默认情况下, 为Intranet资源。所以IE进入(in)兼容模式,其中没有getElementsByClassName
。
您可以尝试更改IE政策*,或尝试通过以下方式将IE提交提交:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
(this answer声称可以使用),或者您可以使用querySelectorAll
:
var sections = document.querySelectorAll(".SECTION");
在IE8中一直存在 querySelectorAll
,而在IE9之前没有添加getElementsByClassName
。
*“策略”是指您组织的Active Directory策略,可以确定此IE设置。
或者,当然,使用默认情况下不做蠢事的网络浏览器。 </rant>