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:09. |