Как подкинуть деток? :-)Задача такова: есть два разных фрейма, в одном их которых (frame1) живет многодетная "мамаша" (mama1) с "выводком" деток (childNodes). Ей необходимо как можно скорее подкинуть всех своих деток бездетной даме (mama2), проживающей в другом фрейме (frame2). Примечание 1: Требуется максимальная совместимость с максимальным числом браузеров. Примечание 2: Не будет ничего страшного, если у mama1 дети останутся по-прежнему, а mama2 получит их клон-копии. Задача состоит лишь в наделении mama2 чужими детьми, т.к. сама она "бесплодна". Примечание 3: Ни одна из мам - не я :-))) ---- Пока я вижу только 2 варианта: Вариант 1: Перебирая всех childNodes.length детей mama1, клонировать их методом importNode() в другой фрейм (frame2). А затем подкидывать их по одному второй маме (mama2) методом insertBefore(). Например, так (процедура находится в parent):
for (i=0; i < frame1.mama1.childNodes.length; i++) { var child = frame1.mama1.childNodes[i]; var clone = frame2.document.importNode(child,true); frame2.mama2.insertBefore(clone); }
К сожалению не все браузеры "понимают" DOM2-стандартный метод importNode(), и в частности такой распространенный, как MSIE. А удочерять детей иной расы (из чужого фрейма) метод insertBefore() позволяет только под NN7 и то, в нарушении существующего стандарта. Возможно под MSIE ему годится на замену insertAdjacentElement(), но я пока не успела с этим разобраться.
Вариант 2:
Импортировать во второй фрейм (frame2) саму mama1, со всеми ее чадами; "удочерить" ее; а затем перетаскивать ее детей по одному. Когда последний ребенок будет изъят - укокошить mama1. К сожалению не знаю, можно ли исхитриться сразу убить mama1, чтобы ее дети при этом не погибли, а достались победителю.
Может быть еще другие варианты реализации? Поделитесь пожалуйста соображениями! |