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> |
при установке MS Office ставиться js-отладчик. В настройках (вкладка Дополнительно) должна быть включена отладка. Тогда будет возможность запускать отладчик при возникновении ошибки. Еще можно alert'ы выдавать
хотя от некоторых ошибок (скорее синтаксических) не поможет. В этом случае, возможно, поможет встроенный отладчик ie8. Либо надо искать строку, по поводу которой ie ругается |
Цитата:
Цитата:
Стоит 6-ой, и дебаггер с возможностью смотреть в 7-ой. Так что этот вариант отпадает. Со строкой не понятно как - с теми строками, которые выдаются, а выдаются номера строк, найти ошибку не получается, т.к. по номерам этих строк совершенно другой код (возможно в связи с тем что страница формируется динамически). |
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Думаю это непосильный труд для меня |
иногда без этого не обойтись, но потом просто уже не допускаешь таких ошибок. В остальных случаях помогает отладчик
|
а вот допустим у меня такой код есть
obj = {val1: 8, get val2 () { return this.val1 + 1; }, get val3 () { return this.val1 + 2; }, set val4 (v) { this.val1 = v / 2 }}; в мазилло и опера все работает есть-ли аналогичные возможности JS для эксплорера? |
Цитата:
|
По поводу отладчика, от 2007 офиса он глючный, в нем не работает watch и intermediate (по крайней мере в моем офисе). Пользуюсь Visual Studio IDE для отладки.
По поводу разных версий ослов - есть отличное решение: http://www.my-debugbar.com/wiki/IETester/HomePage |
оп-па, придумал кроссброузерное решение:
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, время: 11:55. |