• 获取iFrame框架中Form表单提交后的结果


    xhEditor中的方式是:先提交Form表单,Form.submit();然后再设置iFrame加载完成事件,用于获取表单提交成功后的结果,iFrame.load(loadFunc());

    loadFunc方法中,获取表单提交结果的方法如下:Var responseTxt = $(iFrame.contentWindow.document.body).text();

    若responseTxt为Json对象,则可以通过以下方法将该对象序列化:

    Var data = Object;

    try{data=eval('(' + responseTxt + ')');}catch(ex){};

    若iFrame.load(loadFunc())方法无法为iFrame设置onLoad事件,则可以使用iFrame.attachEvent( "onload",loadFunc);

    ======================================================================================

    有时在IE中对动态创建和修改的onload事件函数没有反应,并非iframe不支持onload事件,折中的就是给onload事先绑定一个空函数,有需要时,去修改这个函数的值。

    可能的原因是IE加载到iFrame时,就设置其状态为加载完成,所以不会触发onLoad事件,通过createElement创建的iframe,也是相同原因,创建好iFrame后就已经onload完成,所以以后设定onload事件就不会生效了。针对这个问题可以不使用createElement创建iframe,直接内嵌到一个DIV里,逃过IE的检测,类似如下代码:

    var newdiv = document.createElement('div');

    newdiv.innerHTML = '<iframe id="iframe1" src ="test.html" onload="test()"></iframe>';

    document.body.appendChild(newdiv);

    该方法适用于IE / Firefox / Opera 浏览器。

    ===============================================================================

    兼容多浏览器的操作iFrame中内容的代码如下:

    function (){
            var doc;
            if (document.all){//IE
                    doc = document.frames["iframe1"].document;
            }else{//Firefox    
                    doc = document.getElementById("iframe1").contentDocument;
            }
            doc.getElementById("title").style.color = "red";
    }
    
  • 相关阅读:
    mysql的复制
    web页面请求历程
    django工作原理简介
    http协议
    路由器和交换机的区别
    OSI七层模型
    TCP/IP协议总结
    IO复用
    僵尸进程和孤儿进程
    java源代码如何打成jar包
  • 原文地址:https://www.cnblogs.com/xyd21c/p/2117923.html
Copyright © 2020-2023  润新知