我有一个包含许多沙盒iframe的shell页面。
e.g。
<div>
<div id="sb1"><iframe sandbox="allow-scripts" srcdoc="stuff here"/></div>
<div id="sb2"><iframe sandbox="allow-scripts" srcdoc="other stuff here"/></div>
</div>
当我收到来自其中一个iframe的消息时,我想知道父div(即#sb1或#sb2)。
我尝试过以下操作但不起作用:
function receiveMessage(event)
{
// Follow line results in : Uncaught DOMException: Blocked a frame with origin ...
var parentDiv = $(event.source).parent();
}
window.addEventListener("message", receiveMessage);
有没有办法确定iframe的父级而无需在iframe的消息中传递ID?
答案 0 :(得分:0)
最近我需要知道切换模态的按钮的ID。 &#39; relatedTarget&#39;为我工作,它也适用于你的情况。
function receiveMessage(event)
{
var id = event.relatedTarget.id;
}
window.addEventListener("message", receiveMessage);
&#13;
答案 1 :(得分:0)
我能够根据&#34; Alexander O&#39; Mara&#34;评价。
function receiveMessage(event)
{
var parentDiv = $($('iframe').toArray().find(
function(f) {
return f.contentWindow === event.source;
}
)).parent();
}
window.addEventListener("message", receiveMessage);