详细情况:页面中有多个iframe,其中iframe中也可能有iframe。需要的iframe不一定是哪一个,也可能是iframe中的iframe中的其中一个iframe。
希望各位帮忙写一个循环查找。
我的半成品:
<script type="text/javascript">
function showInfo()
{
var iframes = window.document.getElementsByTagName("iframe");
var curs = queryIframe(iframes);
}

var curIframeId = "level widget";

function queryIframe(curObject)
{
for(var i=0;i<curObject.length;i++)
{
if(curObject[i].id==curIframeId)
{
return curObject[i];
}
}

for(var j=0;j<curObject.length;j++)
{
alert(curObject[j].id);
var iframeId = curObject[j].id;
//这个地方不知道该怎么写了,当前这种写法获取不到
var tempIframes = curObject[j].document.getElementByTagName("iframe");  

if(null!=tempIframes && tempIframes.length > 0)
{
queryIframe(tempIframes);
}
}
}
</script>

解决方案 »

  1.   

    试下
    var tempIframes = curObject[j].windowContent.document.getElementByTagName("iframe");
      

  2.   

    var tempIframes = curObject[j].contentWindow.document.getElementByTagName("iframe");   
      

  3.   

    上面的写错了
    应该是
    var tempIframes = curObject[j].contentWindow.document.getElementsByTagName("iframe"); 
      

  4.   

    不行啊!我做了一个示例:页面中有两个iframe(level1、level2),第二iframe(level2)中有一个iframe(level3),iframe(level3)中还有一个iframe(level4)。我试过用递归的方式能查到level3中的其他控件却没有办法获取更深层level4的内容。
    更新的代码:
    var curIframeId = "level widget";

    function queryIframe(curObject)
    {
    for(var i=0;i<curObject.length;i++)
    {
    if(curObject[i].id==curIframeId)
    {
    return curObject[i];
    }
    }

    for(var j=0;j<curObject.length;j++)
    {
    alert("curFrameId:"+curObject[j].name);
    //这个地方不知道该怎么写了,当前这种写法获取不到
    var tempIframes = curObject[j].contentWindow.frames;  //此处会报contentWindow为空异常,但里面确实有东西

    if(null!=tempIframes && tempIframes.length > 0)
    {
    queryIframe(tempIframes);
    }
    }
    }function showInfo()
    {
    var iframes = window.document.frames;
    //alert(iframes[0].name);
    var curs = queryIframe(iframes);
    //testMethod(iframes);
    }
      

  5.   

    showInfo函数中的第一行改成:var iframes = window.document.getElementsByTagName("iframe");
      

  6.   

    管你几多个iframe,用jquery很好搞定;
      

  7.   

    哥们!我们现在项目中用的dojo,要改成jquery,那工程相当的浩大。。
      

  8.   

    哥们!我们现在项目中用的dojo,要改成jquery,那工程相当的浩大。。