Javascript 如何获取iframe';她是家长吗?

Javascript 如何获取iframe';她是家长吗?,javascript,iframe,Javascript,Iframe,我有一个页面如下所示: <div class="myclass" id="div1"><iframe id="frame1" src="myiframe.html"></div> <div class="myclass" id="div2"><iframe id="frame2" src="myiframe.html"></div> parent.document.getElementById("div id") v

我有一个页面如下所示:

 <div class="myclass" id="div1"><iframe id="frame1" src="myiframe.html"></div>
 <div class="myclass" id="div2"><iframe id="frame2" src="myiframe.html"></div>
parent.document.getElementById("div id")

var parentDivOfIfame1 = $("#frame1", parent.document).parent();

在我的
iframe
中,我需要知道其父节点的div的id,但我不知道如何知道。 我在没有jquery的情况下搜索了一个解决方案,但我只找到了带有
getElementById
的东西,实际上我正在搜索id

有人能帮我吗?

试试这样:

 <div class="myclass" id="div1"><iframe id="frame1" src="myiframe.html"></div>
 <div class="myclass" id="div2"><iframe id="frame2" src="myiframe.html"></div>
parent.document.getElementById("div id")

var parentDivOfIfame1 = $("#frame1", parent.document).parent();
试着这样做:

 <div class="myclass" id="div1"><iframe id="frame1" src="myiframe.html"></div>
 <div class="myclass" id="div2"><iframe id="frame2" src="myiframe.html"></div>
parent.document.getElementById("div id")

var parentDivOfIfame1 = $("#frame1", parent.document).parent();

您必须知道,就iFrame中的JS代码而言,窗口就是iFrame,文档就是该iFrame的内容。这里有一个小函数应该适合您,以便保存父文档:

var parentDoc = window;
while(parentDoc !== parentDoc.parent)
{
    parentDoc = parentDoc.parent;
}
parentDoc = parentDoc.document;
var iFrames = parentDoc.getElementsByTagName('iframe');
var divs = [];
for(var i=0;i<iFrames.length;i++)
{
    divs.push(iFrames[i].parentNode);//assuming the first parent is the div
}
var parentDoc=window;
while(parentDoc!==parentDoc.parent)
{
parentDoc=parentDoc.parent;
}
parentDoc=parentDoc.document;
var iFrames=parentDoc.getElementsByTagName('iframe');
var divs=[];

对于(var i=0;i您必须知道,就您在iFrame中的JS代码而言,窗口就是iFrame,文档就是该iFrame的内容。下面是一个小函数,它应该适用于您,以便创建父文档:

var parentDoc = window;
while(parentDoc !== parentDoc.parent)
{
    parentDoc = parentDoc.parent;
}
parentDoc = parentDoc.document;
var iFrames = parentDoc.getElementsByTagName('iframe');
var divs = [];
for(var i=0;i<iFrames.length;i++)
{
    divs.push(iFrames[i].parentNode);//assuming the first parent is the div
}
var parentDoc=window;
while(parentDoc!==parentDoc.parent)
{
parentDoc=parentDoc.parent;
}
parentDoc=parentDoc.document;
var iFrames=parentDoc.getElementsByTagName('iframe');
var divs=[];

对于(var i=0;iTo clarify:您将在
中运行Javascript,而不是它的容器?是的,我想在
中运行Javascript以澄清:您将在
中运行Javascript,而不是它的容器?是的,我想在Safari中运行Javascript说:
类型错误:“未定义”不是o对象(评估'parent.document.getElementById')
Chrome说:
Uncaught类型错误:无法调用未定义的方法'getElementById'
Safari说:
TypeError:'undefined'不是对象(评估'parent.document.getElementById'))
Chrome说:
Uncaught TypeError:无法调用undefined的方法'getElementById',这很好。现在的问题是,我嵌入它的网站和iframe来自不同的域。:ST这对JS没有什么影响…你想做什么,这会造成问题?我解决了我的问题是通过控制器传递ID。尽管非常感谢!这很有效,很好。现在的问题是,我嵌入它的网站和iframe来自不同的域。:st这对JS没有什么影响…你想做什么,这是一个问题?我通过pas解决了我的问题通过控制器唱ID。尽管非常感谢!