У меня странная проблема. У меня есть сайт, построенный с классическим asp. Он работал отлично в течение многих лет, но теперь по некоторым причинам некоторые из моих htc не отображаются, когда страница загружается. Затем, когда я пытаюсь получить доступ к этим объектам следующим образом: document.All(objName).value, я получаю: Object не поддерживает это свойство или метод.
Есть идеи?
Благодарю.
Прежде всего, хотелось бы упомянуть, что это не имеет ничего общего с классическим ASP, это проблема с чистой клиентской стороной.
Теперь к делу. Печально известный document.all
не должен использоваться, период. Также следует избегать VBScript на стороне клиента, потому что IE означает, что он не будет работать более чем для 50% ваших посетителей.
Подводя итог: переключитесь на JavaScript и используйте стандартный document.getElementById
. Измените свой код на такой строке:
MyValue = document.All(objName).value
Вместо этого:
var myValue = document.getElementById(objName).value;
Если objName - это имя, а не id, например <input type="text" name="MyInput"/>
вы можете использовать:
var myValue = document.getElementsByName("MyInput")[0].value;
(предполагая, что у вас есть только один элемент с этим именем)
Это было решено? Если эта проблема была особенно сгенерирована в браузере IE, вы можете сделать ее совместимой версией, добавив следующую строку кода ASP?
Response.AddHeader "X-UA-Compatible", "IE = edge, chrome = 1"
document.All.objName.value
еслиobjName
является фактическим идентификатором элемента (не переменной), илиdocument.getElementById(objName)
если это переменная с идентификатором элемента.