Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   IE и Javascript - не работающие ф-ци. (https://javascript.ru/forum/css-html-internet-explorer/6799-ie-i-javascript-ne-rabotayushhie-f-ci.html)

velo 23.12.2009 17:05

IE и Javascript - не работающие ф-ци.
 
Пользуюсь всеми браузерами, кроме ИЕ.
Но... понимая что юзвери этого не хотят воспринимать, решил протестить в ИЕ все созданное и отлично работающее в других браузерах.
Получил кучу неработающих скриптов.

Прошу помощи разобраться.

Ошибки иногда выдаются, иногда нет. Но я абсолютно не понимаю, как их отловить в ИЕ (может кто то подскажет как?)

Начну с пары простых скриптов:

function wt_updateSpeedProfile() {
    var x = document.getElementById("speedprofile");
	var res = x.options[x.selectedIndex].value;
	var km = data;
	if (res > 0){
		var speed_time = (km/res)* 3600;
		document.getElementById("timeow").innerHTML = " = "+ showTimeNoSec(speed_time);
	}
}

function showTimeNoSec(time) {
    var strTime = "";
    if (time >= 3600) strTime += Math.floor(time/3600) + " ч.";
	time %= 3600;
    if (time >= 60) strTime +=" "+ Math.floor(time/60) + " м.";
    time %= 60;
    return strTime
}




// Другая неработающая ф-ция:

function select_speed(){
	var sel_opt_val = 30;
	for(i=0; i<24; i++){
		var val = document.getElementById("speed"+i).value;
		if(val == sel_opt_val){
			setNewAttribute("speed"+i, "selected", "selected");
			return;
		}
	}
}



<select name="speedprofile" id="speedprofile" size="1" onChange="wt_updateSpeedProfile();">
	<option value="0" id="speed0" > -- </option>
	<option value="4" id="speed1">4 </option>
	<option value="5" id="speed2">5 </option>
.....................................
	<option value="23" id="speed20">23 </option>
	<option value="24" id="speed21">24 </option>
	<option value="25" id="speed22">25 </option>
	<option value="30" id="speed23">30 </option>
</select>

<span id="timeow"></span>

x-yuri 23.12.2009 19:36

при установке MS Office ставиться js-отладчик. В настройках (вкладка Дополнительно) должна быть включена отладка. Тогда будет возможность запускать отладчик при возникновении ошибки. Еще можно alert'ы выдавать

хотя от некоторых ошибок (скорее синтаксических) не поможет. В этом случае, возможно, поможет встроенный отладчик ie8. Либо надо искать строку, по поводу которой ie ругается

velo 24.12.2009 00:31

Цитата:

Сообщение от x-yuri (Сообщение 38980)
при установке MS Office ставиться js-отладчик.

В MS Office 2007 насколько я понял его нет.

Цитата:

Сообщение от x-yuri (Сообщение 38980)
поможет встроенный отладчик ie8. Либо надо искать строку, по поводу которой ie ругается

Ие-8 не ставлю из соображений просмотра в меньшей версии.
Стоит 6-ой, и дебаггер с возможностью смотреть в 7-ой.
Так что этот вариант отпадает.

Со строкой не понятно как - с теми строками, которые выдаются, а выдаются номера строк, найти ошибку не получается, т.к. по номерам этих строк совершенно другой код (возможно в связи с тем что страница формируется динамически).

x-yuri 24.12.2009 00:43

Цитата:

Сообщение от velo
В MS Office 2007 насколько я понял его нет.

на данный момент он лучший в плане пошаговой отладки

Цитата:

Сообщение от velo
Ие-8 не ставлю из соображений просмотра в меньшей версии.

поставь internet explorer collection. Правда у меня сейчас какое-то диалоговое окно при заходе в меню ie 7 появляется, а в остальном пока претензий нету

Цитата:

Сообщение от velo
Со строкой не понятно как - с теми строками, которые выдаются, а выдаются номера строк, найти ошибку не получается, т.к. по номерам этих строк совершенно другой код (возможно в связи с тем что страница формируется динамически).

вставляешь пустую строку: если ie говорит о строке+1, значит вставляешь пустую строку дальше по тексту

velo 24.12.2009 00:47

Цитата:

Сообщение от x-yuri
поставь internet explorer collection

Спасибо, попробую глянуть в эту сторону.

Цитата:

Сообщение от x-yuri
вставляешь пустую строку: если ie говорит о строке+1, значит вставляешь пустую строку дальше по тексту

Кхе ))) Страница примерно 5000 строк, и страниц самих тоже не мало )))
Думаю это непосильный труд для меня

x-yuri 24.12.2009 00:54

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

Diabol 25.02.2010 19:33

а вот допустим у меня такой код есть
obj = {val1: 8, get val2 () { return this.val1 + 1; }, get val3 () { return this.val1 + 2; }, set val4 (v) { this.val1 = v / 2 }};

в мазилло и опера все работает
есть-ли аналогичные возможности JS для эксплорера?

Kolyaj 26.02.2010 09:27

Цитата:

Сообщение от Diabol
есть-ли аналогичные возможности JS для эксплорера?

Нет.

vk65535 26.02.2010 10:40

По поводу отладчика, от 2007 офиса он глючный, в нем не работает watch и intermediate (по крайней мере в моем офисе). Пользуюсь Visual Studio IDE для отладки.
По поводу разных версий ослов - есть отличное решение: http://www.my-debugbar.com/wiki/IETester/HomePage

Diabol 26.02.2010 16:44

оп-па, придумал кроссброузерное решение:
var obj = new Object;

      function propObj ()
        {
         obj.val1 = 8;
         obj.val2 = function () {
                      return ( this.val1 + 1 ); };
         obj.val3 = function () {
                      this.val1 += 2; return this.val1; };
         obj.val4 = function ( v ) {
                      return ( this.val1 = v / 2 ); };
        };


Часовой пояс GMT +3, время: 23:08.