Джаваскрипт; Доступ к кадрам набора фреймов из других фреймов

У меня есть система, которая использует набор фреймов, внутри фреймов есть некоторые вызовы, например;

top.frame1.location = "newlocation"; 

а также

top.frame2.afunction(); 

Однако я обновляю систему, и теперь набор фреймов находится внутри iframe, поэтому очевидно, что все вызовы top.frame.whatever больше не работают. Теперь я пытаюсь найти решение, не связанное с изменением «верха». в тонне страниц, которые выполняют различные функции.

Я пробовал на самой верхней странице делать что-то подобное;

frame1 = $('#containerframe').contents().find('#frame1');

Но это, похоже, не работает, оно просто говорит, что top.frame1.document не определен при попытке доступа к документу.

Любые предложения будут крутыми :)


person Joel    schedule 29.10.2009    source источник


Ответы (1)


Вы перезаписываете значение в top.frame1 набором jQuery, который НЕ является тем же объектом, что и объект по умолчанию (который является объектом окна), поэтому вы получаете ошибку «undefined» - набор jQuery не имеет свойство document.

Если вы хотите исправить это, без изменения всех ваших ссылок на top.frame1, у вас есть несколько вариантов. Предполагая, что #containerframe - это ваш iframe, я думаю, это сработает.

На самой родительской странице

frame1 = self.frames.containerframe.frames.frame1;

РЕДАКТИРОВАТЬ

Коллекция frames работает с атрибутами name, поэтому убедитесь, что ваш iframe выглядит так:

<iframe id="containerframe" name="containerframe" />
person Peter Bailey    schedule 29.10.2009