0

我正在解决同事在将表单发布到 API 的页面上留下的错误,并在 iframe 中接收 XML 响应,然后使用 XML 解析子项。该页面适用于 IE9、Chrome 和 Firefox,但不适用于 IE 8。

表格:

<form action="../../includes/functions/ADapi.php" method="POST" target="response" id="addForm" >
<fields galore></fields galore>
</form

<iframe name="response" id="response" style="display:none;" ></iframe>

响应:

<?xml version="1.0" encoding="utf-8" ?> 
- <xmlresponse>
  <DateTime>2012-04-26 15:36:47</DateTime> 
  <confirmationcode>success</confirmationcode> 
  </xmlresponse>

的JavaScript:

function getResponse()
    {
        var myIFrame = document.getElementById("response");
        var content = myIFrame.contentWindow.document.getElementsByTagName('confirmationcode');
        var insertID = myIFrame.contentWindow.document.getElementsByTagName('id');
        //var sql = myIFrame.contentWindow.document.getElementsByTagName('SQL');
        var response = $(content).text();
        var responseID = $(insertID).text();
        //alert($(sql).text());

        if(response == "Success" || response == 'success')
        {
            if(mode == 'edit')
            {
                post_to_url("/edit-contact", {type: 'edit', cust: id, mod: 'update',field : '<?php if(isset($_POST['field'])){ echo $_POST['field']; }?>',operator : '<?php if(isset($_POST['operator'])){ echo $_POST['operator']; }?>',criteria : '<?php if(isset($_POST['criteria'])){ echo $_POST['criteria']; }?>'});
            }
            else
            {
                post_to_url("/edit-contact", {type: 'edit', cust: responseID, mod: 'insert',field : '<?php if(isset($_POST['field'])){ echo $_POST['field']; }?>',operator : '<?php if(isset($_POST['operator'])){ echo $_POST['operator']; }?>',criteria : '<?php if(isset($_POST['criteria'])){ echo $_POST['criteria']; }?>'});
            }

        }
        else
        {
            alert("Error!");
        }


    }

每次运行时,它都会弹出“错误!”的警报

任何帮助将不胜感激。

4

2 回答 2

1

如果您从 HTML 文档 ( window.document) 查询,IE8 仅识别 HTML 中有效的元素。如果您正在查询 XML 文档(如 . 返回的内容XmlHttpRequest),它可以正常工作。

于 2012-04-26T20:12:37.167 回答
0

我去重建页面以使用 AJAX。它花了比需要的时间更长的时间,但我把它转移了。正如此处所指出的,它无法按照设置的方式工作,需要做其他事情才能正常工作。

于 2012-05-01T13:38:46.260 回答