<html>
<head>
<script type="text/javascript">
function createf(){
var iframe = document.createElement("iframe");
iframe.id="iframe1";
iframe.name="iframe1";
document.body.appendChild(iframe);
}
function test(){
document.form1.action="http://www.csdn.net";
document.form1.submit();
iframestatus();
}
function iframestatus(){
var iframe = document.getElementById("iframe1");
if (iframe.attachEvent){
    iframe.attachEvent("onload", function(){
        alert("邮件发送完毕");
        //移除
       document.body.removeChild(iframe);
       //创建
       createf();
    });
}  else {
    iframe.onload = function(){
        alert("邮件发送完毕");
        document.body.removeChild(iframe);
        createf();
    };
}}
function get(){
var i=document.getElementById("iframe1");
alert(i.name+"创建成功");
}
</script>
</head>
<body>
<form action="" target="iframe1" name="form1">
<input type="button" value="测试" onclick="test()">
</form>
<input type="button" value="get" onclick="get()">
<iframe id="iframe1" src="" name="iframe1"></iframe>
</body>
</html>上面是我用测试的代码,我的目的是:提交一个form ,结果展示在iframe里面,加上判断iframe是否加载完毕的条件,如果只提交form一次的话判断没问题,但是如果要提交2次以上,iframe判断就会出现两次...所以我就在加载完之后移除这个iframe,然后再创建一个相同的iframe,让form的结果展示区还是iframe,但是创建后的iframe貌似不能接受form提交的内容,提交form后就会重新打开一个新的页面...不知道问题出在哪里,还请各位高手帮帮忙...用别的方法也可以..另:不要问我为啥删除iframe,这个是iframe是隐藏的,目的只是用来判断form是否提交完毕了...还有不能用ajax...

解决方案 »

  1.   

    补充一下:如果不是form提交的内容加载到iframe里面,而是iframe.src="www.csdn.net";就能正确的判断结果...说明这个iframe是创建正确的啊....
      

  2.   

    你删除iframe后,重新添加iframe 时;需要重新
    设置 <form action="" target="iframe1" name="form1">
      

  3.   

    <html>
    <head>
    </head>
    <body>
    <form action="http://www.baidu.com" target="" id='form1' name="form1">
    <input type="button" value="测试" id='btn'>
    </form>
    <script type="text/javascript">
    function $(id) {
    return typeof(id) == 'string'? document.getElementById(id) : id;
    }
    (function(iframeName) {
    function createIframe(form) {
    var _iframe;
    if(!!document.all) {
    _iframe = document.createElement('<iframe name="' + iframeName + '"></iframe>');
    _iframe.onreadystatechange = function() {
    if (/(complete|loaded)/.test(this.readyState)) {
    iframeLoaded(this);
    }
    }
    } else {
    _iframe = document.createElement('iframe');
    _iframe.name = iframeName;
    _iframe.onload = function() {
    iframeLoaded(this);
    }
    }
    document.body.appendChild(_iframe);
    form.submit();
    }
    function iframeLoaded(iframe) {
    alert("邮件发送完毕");
    iframe.onload = null;
    document.body.removeChild(iframe);
    }
    function sendPost(obj) {
    var _form = obj.form;
    _form.target = iframeName;
    createIframe(_form);
    }
    $('btn').onclick = function() {
    sendPost(this)
    };
    })('iframe1');
    </script>
    </body>
    </html>
      

  4.   

    多谢二位的指点..问题解决了..根据3楼的指示,原来个鸟IE创建元素要用_iframe = document.createElement('<iframe name="' + iframeName + '"></iframe>');
    3L强悍...