Использование AJAX для вызова скрипта CGI, который открывает файл и распечатывает его в DIV.
Это нормально работает на тестовой странице, которую я имею, но по какой-то причине на другой странице он распечатает содержимое в DIV, а затем очистит DIV. Используя alert (), я вижу, что состояние готовности изменяется с 1,2,3,4,1,4, а затем, после его 4, второй раз содержимое div очищается. Он фактически вызывает функцию updatepage () дважды, но во второй раз DIV очищается. Когда я проверяю в firebug, innerHTML меняется с содержания на "".
На моей тестовой странице этого не происходит, даже если происходит та же последовательность состояния готовности.
Вот фрагмент кода, в котором у меня проблемы:
self.xmlHttpReq.open('POST', cgiScript, true);
self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
self.xmlHttpReq.onreadystatechange = function()
{
if (self.xmlHttpReq.readyState == 4)
{
updatepage(self.xmlHttpReq.responseText);
}
}
function updatepage(str)
{
document.getElementById("result").innerHTML = str;
}
РЕДАКТИРОВАТЬ !!!!!!!!!!!!!!!!!
Хорошо, я думаю, что выяснил, что не так, но я не уверен, почему.
На якоре проблема была вызвана html href = "". Как только я удалил это, div остался населенным.
Это приведет к исчезновению DIV после печати
<div class="menulinkboxes" id="listdiv">
<a class="mainmenulinks"
onclick='openFile("list,autos")'
href="">auto-list</a>
</div>
Замена href = "" на href = "#" исправила это. # означает эту страницу
<div class="menulinkboxes" id="listdiv">
<a class="mainmenulinks"
onclick='openFile("list,autos")'
>auto-list</a>
</div>