jQuery Добавляет элемент из iframe в родительское окно его тела. - PullRequest
10 голосов
/ 03 октября 2011

у меня есть elm.appendTo('#wrap');

где elm - это объект jquery изображения, по которому щелкнули, внутри iframe. Я хочу добавить это изображение к <div id="wrap">, где #wrap - это div в теле страницы вне iframe. Поэтому, когда я дважды щелкаю на изображении внутри iframe, я хочу, чтобы это изображение добавлялось к <body> за пределами iframe. И body, и ссылка iframe находятся в одном домене.

Ответы [ 2 ]

11 голосов
/ 03 октября 2011

При условии, что фрейм и его родительский элемент находятся в одном домене. См СОП

<ч /> Выполните любую из следующих строк из в iframe (parent можно заменить на top, если родительский документ находится в верхнем окне):

//If the parent document doesn't have JQuery:
elm.appendTo(parent.document.getElementById("wrap"));

//Only if JQuery is included at the parent
elm.appendTo(parent.$("#wrap"));
parent.$("#wrap").append(elm);

<час /> Если вы хотите получить элемент внутри фрейма из контекста parent , используйте одно из следующих:

Предположим, #elm будет идентификатором вашего изображения.

// If JQuery is defined at the frame AND the parent (current document)
$("#wrap").append(frames[0].$("#elm"));
frames[0].$("#elm").appendTo($("#wrap"));

frames[0] относится к первому кадру в текущем документе. Если вы установили атрибут name для своего кадра, вы также можете использовать frames.frame_name или frames["frame_name"].

<ч /> Последний пример : добавление прослушивателя событий click к объекту elm JQuery (изображение):

elm.click(function(){
    parent.$("#wrap").append(this);
})
1 голос
/ 03 октября 2011

Попробуйте пойти по-другому: в родительском окне найдите элемент, к которому вы хотите добавить, а затем используйте .append() и выберите элемент в iframe.Например:

$("#wrap").append($("iframe #myElement"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...