在一个框架的页面中,这样写为什么不行。(ie不行,火狐可以)window.parent.frames["mainframe"].document.body.appendChild(divobj);

解决方案 »

  1.   

    window.frames["iframeContent"].document.body.innerHTML="<div style='font-size:12px;'>请输入统计查询条件!</div>";
      

  2.   


    不是这样的。是两个子页面,一个子页面向另一个子页面动态创建一个div
      

  3.   

    那么获取另一页页面的id,然后再添加,try
      

  4.   

    A是主页面,里面包括两个frame页面B和C
    B:在B中操作C的javascript方法viewChangePassword()window.parent.document.getElementsByTagName("frame")['mframe'].contentWindow.viewChangePassword();firefox和IE访问frame是不一样的。
    在IE里
    1:window.parent.document.getElementsByTagName("frame")['mframe'].contentWindow.viewChangePassword();
    2:window.parent.document.getElementById("mframe").viewChangePassword();
    3:window.parent.document.getElementsByTagName("frame")[2].viewChangePassword();
    在firefox里只能有一种方法,就是本文开始的方法。
      

  5.   


    我这样写:
    window.parent.document.getElementsByTagName("frame")['mainframe'].contentWindow.document.body.appendChild(divobj);一样不行啊,还是参数无效
      

  6.   

    我遇到过,我是这么理解的:
    1、你操作过的那个divobj是在当前的JAVASCRIPT运行的HTML中创建的,默认是这个文档DOCUMENT的内容,在你调用其他页面的方法添加这个元素时,方法不支持从其他文档传过来的东西,不识别;
    2、你要把这个页面中的内容拿到其他页面肯定是不安全的,
    3、IE不行,FF可以,我觉得跟他们的DOM模型有关系,FF的根节点是DOCUMENT,IE是WINDOW,我是这么想的DOCUMENT可以嵌套DOCUMENT,WINDOW应该还是不行。呵呵,管他的。
    建议你可以把这个创建元素的方法写在那个IFRAME的HTML中,通过框架之间的方法调用就可以了。我觉得这样比较合理,
      

  7.   

    var doc;
    if (document.all) {
      // IE
      doc  = frames[id].document;
    } else {
      // Mozilla
      doc = document.getElementById(id).contentDocument;
    }var container = doc.createElement("div");doc.body.appendChild(container);
      

  8.   

    var doc;
    if (document.all) {
      // IE
      doc  = parent.frames[id].document;
    } else {
      // Mozilla
      doc = parent.getElementById(id).contentDocument;
    }var container = doc.createElement("div");doc.body.appendChild(container);