document.getElementById () возвращает ноль на IE9 - PullRequest
8 голосов
/ 24 января 2012

Я работаю над всплывающим окном, и мне трудно работать с Internet Explorer 9. Это фрагмент кода, который доставляет мне проблемы:

var popUp= document.getElementById('projectInfo');
popUp.style.left=(tempX-310)+'px';
popUp.style.top=(tempY-110)+'px';

В IE9 (не тестировалв предыдущих версиях), всплывающее окно равно нулю.Кроме того, я попытался включить мой файл .js непосредственно перед закрывающим тегом тела и обернуть мою функцию в функцию «document.ready ()», но ничего из этого не сработало.Хотя тот же код отлично работает в Opera, Chrome и Firefox.Кто-нибудь знает, что происходит?

Примечание: функция вызывается в атрибуте onLoad тела моего html.

Ответы [ 3 ]

1 голос
/ 03 марта 2012

Без использования функции не может работать

 window.onload = function() {
   var popUp= document.getElementById('projectInfo');
   popUp.style.left=(tempX-310)+'px';
   popUp.style.top=(tempY-110)+'px';
 }
0 голосов
/ 12 октября 2012

В предыдущих версиях IE (и, видимо, Chrome и Firefox) getElementById проверял объект с заданным идентификатором, а если он его не находил, он брал элемент с этим именем.

IE9 не делает этого, поэтому вам нужно убедиться, что у вас есть элемент с id = projectInfo, а не просто name = projectInfo. Мы только что обнаружили это в одном из наших приложений. Не отлично.

0 голосов
/ 24 января 2012

IE имеет некоторые известные проблемы с getElementById. Этот пост может помочь.

  1. http://webbugtrack.blogspot.com/2007/08/bug-152-getelementbyid-returns.html

  2. http://www.impressivewebs.com/avoiding-problems-with-javascript-getelementbyid-method-in-internet-explorer-7/

...