JSP + ajx: обновление div с использованием проблемы innerhtml - PullRequest
0 голосов
/ 05 апреля 2011

На моей главной странице у меня есть div:

<div id = "content"><%@include file ="loadData.jsp" %></div>

В loadData.jsp есть <table> ... </table>, а затем div с именем pager для выполнения подкачки таблицы:

<div id"pager"> ... </div>

Итак, когда я нажимаю определенную ссылку на моей главной странице, ajax установит запрос на загрузку этого loadData.jsp, и я сделаю что-то вроде

document.getElementById("content").innerHTML=xmlhttp.responseText;

, чтобы обновить содержимое содержимого div.Моя проблема сейчас заключается в том, что он работает только на Chrome и Firefox, тогда при запуске в IE возникает эта неизвестная ошибка времени выполнения.У меня был Google, эта проблема в основном из-за innerhtml, потому что мой вывод имеет пейджер вызова Div.Любые решения?Спасибо

var xmlhttp
function loadContent()
{
    xmlhttp=GetXmlHttpObject();
    if (xmlhttp==null)
    {
        alert ("Your browser does not support Ajax HTTP");
        return;
    }
    var url="loadData.jsp";
    xmlhttp.onreadystatechange=getOutput;
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
}
function getOutput()
{
    if (xmlhttp.readyState==4)
    {
        document.getElementById("content").innerHTML=xmlhttp.responseText;
    }
}

function GetXmlHttpObject()
{
    if (window.XMLHttpRequest)
    {
        return new XMLHttpRequest();
    }
    if (window.ActiveXObject)
    {
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
    return null;
}

, поэтому в моем главном файле у меня есть эта ссылка

 <a href="javascript:loadContent()>All</a>

, а затем есть

<div id = "content"><%@include file ="loadData.jsp" %></div>

Итак, когда я нажимаю на ссылку, это содержимое будетзагрузить новые данные, он работает в Firefox и Chrome, но не в IE, внутри loadData у меня есть это

<table width="900" border="0" class="sortable" id="menuTable">
<thead>
  <tr align="left">
      <th width="60">ID</th>
       ...
      <th width="80">...</th>
  </tr>
</thead>
<tbody>

...
</table>
<div id="pager" class="pager">
               <form>
                  <select class="pagesize">
                      <option value="5">5 per page</option>
                      <option value="10" selected>10 per page</option>
                      <option value="15">15 per page</option>
                      <option value="20">20 per page</option>
                  </select>
              </form>
    </div>

1 Ответ

0 голосов
/ 06 апреля 2011

Я думаю, что ваш код в порядке, добавьте точку останова или предупреждающие сообщения, чтобы узнать, в чем проблема.Тогда лучше, если вы попытаетесь отловить код в своем коде следующим образом.

function GetXmlHttpObject() {
        var xmlHttp;
        try {
                // for firefox, Opera 8.0+, Safari
                xmlHttp = new XMLHttpRequest();
        } catch (e) {
                // InternetExplorer
                try {
                        xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                        try {
                                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e) {
                                alert("Browser does not support AJAX!");
                                return null;
                        }
                }
        }
        return xmlHttp;
}

Также в вашем getOutput проверьте статус xhr xmlhttp.status==200.Поместите несколько предупреждений в эту функцию, чтобы увидеть, передается ли здесь ваш код.

...