Ошибка JavaScript: требуется объект ... непростое время для исправления - PullRequest
0 голосов
/ 30 мая 2010

Ситуация такова: моя подруга попросила меня помочь ей с сайтом, над которым она работает, под названием www.KeepsakePartyInvitations.com. Ее оригинальный дизайнер создал этот код, но не закончил проект. Так что я здесь, чтобы помочь спасти день.

Теперь, когда в шаблон вечеринки добавлена ​​фотография и наведена мышка на изображение, справа появляется альтернативное текстовое сообщение. Сообщение информирует посетителя, как изменить положение и изменить размер изображения, если это необходимо.

Я тестирую процедуру в приглашении для изменения положения изображения. Я следую инструкциям по перемещению картинки, но мышь не отпускает фотографию. Куда бы ни двигалась мышь, изображение тоже. То же самое происходит, если вы хотите изменить размер изображения, вы следуете инструкциям, но изображение не изменяется.

Я проверяю сообщение об ошибке в IE 8, и оно гласит:

Сообщение: требуется объект

Строка: 873

Char: 3

Код: 0

URI: http://www.keepsakepartyinvitations.com/Includes/JCode.js

Когда я проверял файл Javascript, в строке 873 говорится:

tempX = e.clientX + document.body.scrollLeft

Если вы просматриваете файл javascript, вызывается функция, в которой находится строка: function getMouseXY(e).

Пожалуйста, помогите мне, прошло много времени с тех пор, как я работал с Javascript, и у меня есть мотивация исправить это.

1 Ответ

1 голос
/ 30 мая 2010

Я не думаю, что document.body имеет scrollLeft свойство в строгом режиме

однако, какой тип документа вы используете? Я спрашиваю об этом, потому что использование document.body.scrollLeft и document.documentElement.scrollLeft зависит от типа документа. вы не можете просто добавить их вместе в одну строку

Я бы переписал твой код

tempX = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
tempY = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;

в

tempX = e.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
tempY = e.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);

и, конечно, проверьте другие подобные случаи в вашем коде

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...