jQuery将iframe中的元素追加到它的主体父窗口。

时间:2011-10-03 19:36:47

标签: jquery iframe append

我有 elm.appendTo('#wrap');

其中elm是iframe中单击图像的jquery对象。我想将该图片附加到<div id="wrap">,其中#wrap是iframe外部页面正文中的div。所以基本上当我双击iframe中的图像时,我希望该图像附加到iframe外的<body>。 body和iframe链接都在同一个域中。

2 个答案:

答案 0 :(得分:11)

如果框架及其父框架位于同一个域中。见SOP

<小时/> 如果父文档位于顶部窗口中,请执行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);

<小时/> 如果要从的上下文中抓取框架内的元素,请使用以下任一项:

假设#elm是您图片的ID。

// 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_nameframes["frame_name"]

<小时/> 最终示例:向click JQuery(图像)对象添加elm事件侦听器:

elm.click(function(){
    parent.$("#wrap").append(this);
})

答案 1 :(得分:1)

尝试从其他方式开始:从父窗口中找到要添加的元素,然后使用.append()并选择iframe中的元素。例如:

$("#wrap").append($("iframe #myElement"));