Почему этот код AJAX не работает в IE8? - PullRequest
0 голосов
/ 30 ноября 2011

Кто-то, помогите мне решить этот вопрос.Мой код ajax, который, кажется, не работает с браузером IE8.У него нет проблем с любым другим браузером.Функциональность заключается в том, чтобы выводить динамические значения «Сноуборды проданы» и «Наличные на склонах»: «после каждого нажатия кнопки« показывать мне деньги »»

Код из случайных значений enter code here, полученный с использованием php.Я считаю, что в этом коде ничего не нужно менять, так как это проблема браузера.

Код ajax приведен ниже:

 <head>
  <title>Boards 'R' Us</title>
  <link rel="stylesheet" type="text/css" href="boards.css" />
  <script type="text/javascript" src="text-utils.js"> </script>
  <script language="javascript" type="text/javascript">
   var request = null;
//Declaring object for browsers
   function createRequest() {
     try {
       request = new XMLHttpRequest();
     } catch (trymicrosoft) {
       try {
         request = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (othermicrosoft) {
         try {
           request = new ActiveXObject("Microsoft.XMLHttp");
         } catch (failed) {
           request = null;
         }
       }
     }

     if (request == null)
       alert("Error creating request object!");
   }

//function called on clicking show me the money button clicked
   function getBoardsSold() {
     createRequest();
     var url = "getUpdatedBoardSales-ajax.php";
     request.open("GET", url, true);
     request.onreadystatechange = updatePage;
     request.send(null);
  }

  function updatePage() {
    if (request.readyState == 4) {
      var newTotal = request.responseText;
      var boardsSoldEl = document.getElementById("boards-sold");
      var cashEl = document.getElementById("cash");
      replaceText(boardsSoldEl, newTotal);

      /* Figure out how much cash Katie has made */
      var priceEl = document.getElementById("price");
      var price = getText(priceEl);
      var costEl = document.getElementById("cost");
      var cost = getText(costEl);
      var cashPerBoard = price - cost;
      var cash = cashPerBoard * newTotal;

      /* Update the cash for the slopes on the form */
      cash = Math.round(cash * 100) / 100;
      replaceText(cashEl, cash);
    }
  }
  </script>
 </head>

 <body>
  <h1>Boards 'R' Us :: Custom Boards Report</h1>
  <div id="boards">
   <table>
    <tr><th>Snowboards Sold</th>
     <td><span id="boards-sold">1012</span></td></tr>
    <tr><th>What I Sell 'em For</th>
     <td>$<span id="price">249.95</span></td></tr>
    <tr><th>What it Costs Me</th>
     <td>$<span id="cost">84.22</span></td></tr>
   </table>
   <h2>Cash for the Slopes: 
    $<span id="cash">167718.76</span></h2>
   <form method="GET">
    <input value="Show Me the Money" type="button"
           onClick="getBoardsSold();" />
   </form>
  </div>
 </body>
</html>

1 Ответ

1 голос
/ 30 ноября 2011

Могу ли я порекомендовать очень стандартный и широко используемый JQUERY?

http://jquery.com/

http://docs.jquery.com/Downloading_jQuery

http://api.jquery.com/jQuery.get/

А затем, для небольшой очень простой магии, замените часть о создании AJAX и вызов на это:

$.get('getUpdatedBoardSales-ajax.php', updatePage);

Сохраните функцию updatePage такой, какая она есть, и все готово!

...