getAttribute(value)即使在本地运行代码时该值存在也返回null

问题描述 投票:0回答:2

我正在尝试调试ASP.Net网站。该代码使用Visual Studio 2012调试,并在Windows 10计算机上使用IIS Express在本地运行。该Web应用程序需要使用Internet Explorer 11运行。

当我运行代码时,我在页面上的JavaScript中获得了Visual Studio捕获的异常(下面未显示的一段代码)。我知道一个事实,该代码已经投入生产,并且100%有效。但是,当我在本地调试代码时,它无法按预期工作。

这是有问题的代码:

var elements = document.getElementsByTagName('input');
for(var i = 0; i < elements.length; i++) {
    var value = elements[i].getAttribute('value');
    //....
}

当我在本地运行代码时,elements[i].getAttribute('value')返回null。但是,当我在生产环境中运行相同的代码时,效果很好。当我调试代码时,可以看到elements[i]的实际值存储在“ value”属性中,但是上述代码仍然返回null。

由于种种原因,我不允许更改代码,并且由于我的同事能够使用相同的设置在其计算机上运行代码,所以我倾向于认为这是我的计算机在任何一种Visual系统中的配置问题工作室或其他内容。

我愿意就可能是什么原因提出任何建议。

javascript asp.net visual-studio-2012 windows-10 internet-explorer-11
2个回答
0
投票

我尝试测试您的上述代码,并且在IE 11浏览器中正常运行。

<!doctype html>
<html>
<head>
</head>
<body>
<input type="text" name="FirstName" value="abc"><br>
<input type="text" name="LastName" value="xyz"><br>
<script>
var elements = document.getElementsByTagName('input');
for(var i = 0; i < elements.length; i++) {
    var value = elements[i].getAttribute('value');
    console.log(value);
}
</script>
</body>
</html>

输出:

enter image description here

可能是与缓存相关的问题。我建议您清除该站点的缓存或硬刷新该页面,然后再次尝试检查结果。

如果问题仍然存在,请尝试提供有关该问题的更多详细信息。我们将再次尝试对其进行检查。


0
投票

经过更多搜索并与同事交谈后,我建议在Internet Explorer中打开企业模式(工具->企业模式)。>>

根据this的文章,它呈现的页面就像在IE8中呈现的一样。据我所知,它也解决了我所看到的问题。

我希望这将来能对某人有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.