2010-03-01 4 views
0

Я люблю IE :)Неверный аргумент в IE

ОК, так что я скачал сума под названием TinySlidshow (http://www.leigeber.com/2008/12/javascript-slideshow/) отлично работает в FF, то я попробовал IE и бум получил недопустимый аргумент ошибки на как 160.

Вот сжатая строка 160, которая по своему усмотрению выглядит по умолчанию.

if(oh==h){clearInterval(e.si)}else{if(oh!=h){e.style.height=oh+(Math.ceil(Math.abs(h-oh)/s)*hd)+'px'}} 

Я сломал его, так что я мог бы найти именно то, что это было, и дело дошло до этой линии:

e.style.height=oh+(Math.ceil(Math.abs(h-oh)/s)*hd)+'px' 

Линия выше, довольно мало добавление/деления и умножения на одной линии, так Я сломал, что так мой OCDE выглядел немного как это:

e.style.height = new_hight + 'px' 

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

Скрипт находится здесь в данный момент:

http://www.romarkdesign.com.au/portfolio2.html

Любые идеи, что мне нужно, чтобы изменить заставить IE работать?

+2

Вы проверили, является ли какой-то параметр, который должен быть числом, заканчивается тем, что является NaN в IE? Есть некоторые ситуации, когда Firefox дает вам числовое значение, когда вы запрашиваете «высоту» или «ширину», но IE просто дает вам «авто» или что-то в этом роде. – Pointy

+3

Не верьте, что номера строк, т.е. дают вам. –

+0

Ты ... ты ... ты ЛЮБЛЮ ЭТО?! ... Ох. Сарказм. Понял. – Matchu

ответ

1

Такая же проблема здесь. После просмотра несколько раз прохожу через отладчик, я заметил, что шаблон высоты устанавливается на «-1px» всякий раз, когда появляется ошибка.

Возможно, я исправил его ... но он is IE и склонны летать с ручкой, несмотря на мои добрые намерения.

Вам необходимо добавить «if (oh < 2) {oh = 2};" после открытия скобки оператора if (oh! = h).

Изменение:

if(oh==h){clearInterval(e.si)}else{if(oh!=h){e.style.height=oh+(Math.ceil(Math.abs(h-oh)/s)*hd)+'px'}} 

к:

if(oh==h){clearInterval(e.si)}else{if(oh!=h){if(oh<2){oh=2};e.style.height=oh+(Math.ceil(Math.abs(h-oh)/s)*hd)+'px'}} 

Теория здесь в том, что TINY не любит отрицательных значений 'точек', так что я о значение 2, если она меньше 2 входящий в постановку задачи. Это заставляет оператор оценивать до 1 при его самом низком значении. «1px», похоже, делает TINY счастливым в IE ... до сих пор.