2012-04-26 11 views
0

私は、APIにフォームをポストし、iframeでXML応答を受け取った後、同僚がXMLで子を解析するというバグを解決しています。ページはIE9、クロム、およびFirefoxでの作業ではなく、IE 8Javascript getElementsByTagNameがIE8で正しく引き抜かれない

フォームれる:

<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!"); 
     } 


    } 

実行するたびに、「Error!」というアラートがポップアップ表示されます。

ご協力いただければ幸いです。

+0

'response'には他の可能性がありますか? console.log(レスポンス); 'を' else'にドロップしましたか?ちなみに、 'alert()'でデバッグしていますか?しないでください。それは信じられないほど邪魔になり、あなたは仕事をして流れに従うのではなく、物事を却下する時間をばかにします。 IE9はかなり最新ですが、IE 7は何をしていますか? 9つの作品、7つの作品がない場合、それはあなたが依存しているものがIE9の前のリリースで追加されたことを示唆しています。 –

+0

これはあなたの質問に答えませんが、なぜその応答をiframeに入れますか? XmlHttpRequestを使用してAjaxリクエストを使用し、レスポンスを解析するのはなぜですか? – Cheeso

+0

私はそれを構築しませんでした。私はちょうどそれを修正しようとしています。それはあまり優先度の低いバグですが、AJAXを明日までに朝10時に再構築する時間がありません。 –

答えて

0

AJAXを使用するためにページを再構築しました。それは必要以上に時間がかかりましたが、私はそれを転送しました。 hereが指摘したように、それは設定された方法では動作しませんし、機能するように何か他のものが必要でした。

1

IE8は、HTMLドキュメント(window.document)からクエリを実行する場合、HTMLで有効な要素のみを認識します。 XmlHttpRequestによって返されたもののように、XML文書を照会している場合は正しく動作します。

関連する問題