Не верь, не бойся, не проси - [entries|archive|friends|userinfo]
phantom

[ website | My Website ]
[ userinfo | ljr userinfo ]
[ archive | journal archive ]

[Mar. 24th, 2008|07:54 am]
Previous Entry Add to Memories Tell A Friend Next Entry
LinkLeave a comment

Comments:
[User Picture]
From:[info]ketmar
Date:March 27th, 2008 - 10:14 pm
(Link)
>for-in не даются
и не надо оно там. %-)

>if (loadingPages) return false;
это чего?

в createElement() тэги лучше писать капсом (похуй, но так рекомендуют).

t.setAttribute() нужны только для тупой тормозиллы, в опере можно напрямую: t.width = 20;

>var nn = Array();
можно заменить на var nn = []; более того — тут ошибка: не = Array(), а = new Array(); потому что иначе не создаётся новый объект.

>for-in does not work as I expect
и не будет, ибо childNodes() не массив, а for-in только для массивов и js-объектов (которые тоже массивы). childNodes() же — native object.
вообще, всё сохранение в массив здесь для того, чтобы новосгенерёные ноды не похерили цикл (ибо childNodes() отображает именно текущее состояние документа, а не снапшот).
[User Picture]
From:[info]ppkk
Date:March 27th, 2008 - 10:33 pm
(Link)
>if (loadingPages) return false;
это чего?

Это копировать-вставить:)
См. UnfoldAll()…
Читал бы я ещё подробно про работу с событиями, до утра бы сидел.

вообще, всё сохранение в массив здесь для того, чтобы новосгенерёные ноды не похерили цикл
Ну надо же:() Это-то понять ума большого не потребовало, а вот for-in или см. ниже я долго искал способ применить и не нашёл.

А можно ли childNodes скопировать в массив разом (с той же целью)?

Как я понимаю, редкость появления консоли в Опере вызвана try...catch, как же тогда проверять ошибки, держать исходники без отлова исключений, а потом снимать комментарии?
[User Picture]
From:[info]ketmar
Date:March 27th, 2008 - 10:44 pm
(Link)
>Ну надо же:() Это-то понять ума большого не потребовало
кому как. я об этом упоминаю, потому что неоднократно спотыкался. сужу по себе.

>а вот for-in или см. ниже я долго искал способ применить и не нашёл.
у объектов нет метода-итератора, поэтому for-in не будет работать для native objects (в частности, любых коллекций нодов) никогда. это раз.
два: надо быть очень аккуратным с for-in, потому что даже в простом массиве могут оказаться далеко не только те ключи, которые ты сам туда поместил.

>А можно ли childNodes скопировать в массив разом (с той же целью)?
нет. praise the excellent API.

>Как я понимаю, редкость появления консоли в Опере вызвана try…catch
нет, отсутствием ошибок. %-) а также флажком «я срал на вашу консоль, не показывайте мне эту хренотень».

>как же тогда проверять ошибки, держать исходники без отлова исключений, а
>потом снимать комментарии?

не делать try/catch вообще. у меня это:
а) leftover'ы;
б) обход дурацкого бага последних бет Оперы.
[User Picture]
From:[info]ppkk
Date:March 28th, 2008 - 12:52 pm
(Link)
А почему массив-то работал без "new", раз это ошибка?
[User Picture]
From:[info]ketmar
Date:March 28th, 2008 - 02:26 pm
(Link)
послабление от авторов для неаккуратных скриптописателей. встроеные типы вообще ведут себя неадекватно. рекомендую на это не полагаться, а писать new везде. пример, зачем:
function XA (z) {
  this.data = z;

  return this;
}

var a = XA(5);
a.data = 6;
var b = XA(4);

print(a.data);
print(b.data);

запускаем в jsshell, наблюдаем две четвёрки. с new — 6 и 4, как и ожидалось.
[User Picture]
From:[info]ppkk
Date:March 27th, 2008 - 10:50 pm
(Link)
>if (loadingPages) return false;
это чего?


Я подумал, что это против загрузки страницы и перескока поля видимости с текущего места на, например, верх страницы.

Это не так?
[User Picture]
From:[info]ketmar
Date:March 27th, 2008 - 10:54 pm
(Link)
нет. это флажок «я щаз догружаю next pages, потому что ты сам на [unfold all pages] кликнул, потому отстань, занят я».
[User Picture]
From:[info]ppkk
Date:March 28th, 2008 - 12:33 pm
(Link)
Ну что ж, значит всё равно получилось правильно.