Полезная информация

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№121-08-2013 15:34:01

Spanden
Участник
 
Группа: Members
Зарегистрирован: 21-08-2013
Сообщений: 2
UA: Chrome 28.0

Перестал работать скрипт в версии 23.0.1

В декабре 2012 года дописал javascript и он корректно работал в 4 браузерах: Opera (последняя на тот момент версия), Firefox (последняя на тот момент версия), Google Chrome (последняя на тот момент версия), Internet Explorer 8.
В январе 2013 года я обнаружил, что в Google Chrome (т.е. после обновления) скрипт начал работать некорректно. В остальных трёх браузерах всё прекрасно работало до недавнего времени: в Mozilla Firefox 23.0.1 возникла проблема аналогичная проблеме в Google Chrome.
Консоль ошибок ничего не выдает.
Думаю, если понять, что изменилось в Google Chrome 7 месяцев назад и что - в Mozilla Firefox в последнем обновлении, то можно будет решить проблему.

Вот собственно код:

Выделить код

Код:

function remove(rid){
var rc=document.getElementById('id'+rid);
var dk=document.getElementById('deck');
dk.removeChild(rc);
delcook(rid);
var ec=document.getElementById(rid);
if(ec!=null){
ec.setAttribute('onclick','add('+rid+')');
ec.setAttribute('title','Add to deck');
ec.setAttribute('style',"background-image:url('css/add.png');");}
var ids=getcookie('idcook');
var durl=document.getElementById('deckurl');
ar=ids.split('_');
ecok=false;
for(var i=0;i<ar.length;i++){if(ar[i]==rid){var k=i; ecok=true;}}
if(ecok){ar.splice(k,1);}
durl.innerHTML="deck ("+ar.length+")";
if(ar.length){durl.href="deck.php?ids="+ar.join('_');} else {durl.href="deck.php";}
var cookie_date=new Date();
cookie_date.setTime(cookie_date.getTime()+500000000);
document.cookie="idcook="+ar.join('_')+"; expires="+cookie_date.toGMTString()+"; path=/; domain=ur.f1seclub.st8.ru;";
document.getElementById('zvezdi').innerHTML=sumstar();
}

Отсутствует

 

№222-08-2013 11:59:23

SunnyDay
Участник
 
Группа: Members
Зарегистрирован: 09-07-2009
Сообщений: 44
UA: Firefox 23.0

Re: Перестал работать скрипт в версии 23.0.1

Использование функционала вроде setAttribute, document.cookie= , .innerHTML= вообще нежелательно (особенно в коде страницы а не расширения) и при них не гарантируется браузеро-независимость. Лучше jQuery. А если хочешь отладить баг используй расширение firebug, или на худой конец:

Выделить код

Код:

function remove(rid){
   try{
      .....
   }catch(e){alert(e.message);}
}

Отсутствует

 

№323-08-2013 21:19:01

Spanden
Участник
 
Группа: Members
Зарегистрирован: 21-08-2013
Сообщений: 2
UA: Chrome 29.0

Re: Перестал работать скрипт в версии 23.0.1

Сегодня полдня переписывал скрипты. И о чудо! Баг пропал. Правда пока ещё не выяснил, в чём именно была ошибка.

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]