a.htm代码:
<div name="div_left" style="position:absolute; "><iframe name="ifr_left" src="b.htm" marginwidth="0" marginheight="0" align="middle" scrolling="no" frameborder="0"></iframe></div>b.htm代码:
<script language="javascript">
this.parentElement.parentElement.style.top=115;
this.parentElement.parentElement.style.left=5;
</script>
<div></div>
要求:
1、将a.htm中的div定位到b.htm指定的位置,注意只能在b.htm中设置位置参数
2、a.htm中的iframe,div能自动适应b.htm中div的大小,以后b.htm的div可能会有增加,总之a.htm的iframe,div需要能自动适应b.htm中内容的大小

解决方案 »

  1.   

    a.html<div name="div_left" style="position:absolute;">
    <iframe name="ifr_left" id="ifr_left" src="b.html" marginwidth="0" marginheight="0" align="middle" scrolling="no" frameborder="1"></iframe>
    </div>b.html<div id="div1">
    长度不固定
    <br/>
    1
    </div><script>
    window.onload = function(){
    var width = document.getElementById("div1").offsetWidth;
    var height = document.getElementById("div1").offsetHeight;
    parent.document.getElementById("ifr_left").style.width = width + "px";
    parent.document.getElementById("ifr_left").style.height = height + "px";
    parent.document.getElementById("ifr_left").parentNode.style.top = "123px";
    parent.document.getElementById("ifr_left").parentNode.style.left = "456px";
    }
    </script>
      

  2.   


    parent.document.getElementById("ifr_left")
    以上这个语句,能不能改为不指定控件的name,因为原来的代码中,有的可能没有name,如果手工加的话,工作量很大。
      

  3.   


    如果只有一个 iframe ,可以如下,如果有多个,就没办法了window.onload = function(){
        var width = document.getElementById("div1").offsetWidth;
        var height = document.getElementById("div1").offsetHeight;    parent.document.getElementsByTagName("iframe")[0].style.width = width + "px";
        parent.document.getElementsByTagName("iframe")[0].style.height = height + "px";
        parent.document.getElementsByTagName("iframe")[0].parentNode.style.top = "123px";
        parent.document.getElementsByTagName("iframe")[0].parentNode.style.left = "456px";
    }
      

  4.   


    在实际代码里,b.htm是另外一个服务器上的,而且是asp文件。也就是说在a.htm的iframe引用的地址是b.asp, 我用你的改写后,还是不行,那个a.htm的div在页面的左下方,位置不对,应该是左上方。
      

  5.   


    而且提示页面错误,拒绝访问,出错的语句是parent.document.getElementsByTagName("iframe")[0].style.width= width+"px";
    感觉好像是没取到对象
      

  6.   

    跨域了,这个问题还没有解决办法,至少我还不知道
    当然,提交给 a.html 所在服务器,或提供了接口,还是可以操作的
      

  7.   


    a.htm是用来给一个单机程序内嵌浏览器使用的,在客户端,没有服务器,呵呵,有没有其他解决办法呢。其实最终目的是用一个服务器上的asp文件,控制客户端单机程序的显示问题(就是在a.htm),如图片的摆放位置等等