我正在计算一个同事留在页面上的错误,该表单将表单发布到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!");
}
}
每次运行时,都会弹出警告“错误!”
非常感谢任何帮助。
答案 0 :(得分:1)
如果您要从HTML文档(window.document
)查询,IE8只能识别HTML中有效的元素。如果您要查询XML文档(例如XmlHttpRequest
返回的内容),它可以正常工作。
答案 1 :(得分:0)
我去重建页面以使用AJAX。它需要的时间比它需要的时间长,但我把它转移了。正如here指出的那样,它不像它的设置方式那样有效,并且还需要做其他事情才能实现。