getAttribute (value) возвращает ноль, даже если значение существует при локальном запуске кода - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь отладить сайт ASP. Net. Код отлажен с использованием Visual Studio 2012 и выполняется локально с использованием IIS Express на моем компьютере Windows 10. Веб-приложение должно быть запущено с использованием Inte rnet Explorer 11.

Когда я запускаю код, я получаю исключение, которое перехватывается Visual Studio, на странице JavaScript (по частям). кода не показано ниже). Я точно знаю, что код уже в производстве и он работает на 100%. Однако, когда я отлаживаю код локально, он не работает должным образом.

Вот код, о котором идет речь:

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

Когда я запускаю код локально, elements[i].getAttribute('value') возвращает ноль. Однако, когда я запускаю этот же код в производстве, он работает нормально. Когда я отлаживаю код, я вижу, что elements[i] имеет фактическое значение, сохраненное в атрибуте "value", однако приведенный выше код по-прежнему возвращает ноль.

Мне не разрешено изменять код ( по причинам) и поскольку мой коллега может запустить код на своем компьютере, используя ту же настройку, я склонен думать, что это проблема конфигурации на моем компьютере в Visual Studio или в другом месте.

I Я открыт для любых предложений относительно того, что может быть причиной.

Ответы [ 2 ]

0 голосов
/ 31 января 2020

После нескольких поисков и разговоров с коллегами мне посоветовали включить режим Enterprise (Инструменты -> Режим предприятия) в Inte rnet Explorer.

Это, согласно это article, отображает страницу так, как если бы она была отображена в IE8. Из того, что я могу сказать, это также решает проблему, которую я видел.

Я надеюсь, что это может помочь кому-то в будущем.

0 голосов
/ 20 января 2020

Я попытался протестировать ваш вышеупомянутый код, и он нормально работает в браузере 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

Это может быть проблема, связанная с кэшем. Я предлагаю вам очистить кэш для этого сайта или повторно обновить страницу sh и снова попытаться проверить результаты.

Если проблема не устранена, попробуйте предоставить более подробную информацию о проблеме. Мы снова попробуем проверить это.

...