Событие onLoad, инициирующее тело Ajax

Вся моя страница снова загружается всякий раз, когда я делаю вызов ajax для загрузки div. Я заметил, что событие onload 'body onload = init ()' запускается при ответе ajax, и вся инициализация происходит снова. Я не хочу, чтобы это случилось. Есть ли способ, которым только div загружается через вызов ajax.

<body onload="init()">
.....
.....
<div>...<a href="" onclick="saveView('more')"><b>More</b></a></div>
</body>

main.js

function saveView(arg){
    if(arg=="more"){
            ajaxGet(baseRef+"all.html", loadList);

    }else{
            ajaxGet(baseRef+"all-A.html", loadList);

    }
function init(){
.....
}

function ajaxGet(url, responseHandler)
{
    var page_request = false;

    if (window.XMLHttpRequest && !(window.ActiveXObject && window.location.protocol == "file:")) { 
                // use this only if available, and not using IE on a local filesystem
        page_request = new XMLHttpRequest();
        }
    else if (window.ActiveXObject) { // older versions of IE, or IE on a local filesystem
        try {
            page_request = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e){
            try{
                page_request = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e){
            }
        }
    }
    else {
        alert("Your browser does not support XMLHTTP.");
        return false;
    }


    page_request.onreadystatechange=function() {
        if(page_request.readyState==4) {
                        // on local machines the status for success is 0. on web servers it is 200
            if(page_request.status==200 || page_request.status==0) {
                responseHandler(page_request);
            }
        }
    }

    page_request.open('GET', url, true);
    page_request.send(null);
}

function loadList(page_request){
    document.getElementById("list").innerHTML=page_request.responseText;
    Loaded = true;    
    try{
        if(pLoaded) 
            doFilterStateChange1();
        }catch(e)
        {
        }
    setTimeout("restoreScrollTop()", 1000);
}

person Mady    schedule 24.03.2011    source источник
comment
Предоставьте дополнительные сведения, например код HTML и JS, который вы используете.   -  person Thorben    schedule 24.03.2011


Ответы (2)


Событие onLoad для body запускает не ajax. Если вы видите тег привязки, я не присвоил значение href = "", из-за которого страница снова загружалась. Удаление решило проблему.

person Mady    schedule 24.03.2011
comment
Если атрибут href удален из тега привязки, тогда курсор в виде руки не будет отображаться при наведении курсора на него. Решение состоит в том, чтобы сохранить href и присвоить значение #, т.е. href = # - person Mady; 25.03.2011

Нам нужно увидеть ваш код, чтобы помочь, но когда страницы выполняют такие действия, как перезагрузка и т. Д., Это обычно означает, что это ошибка сценария. Используйте firebug для проверки ошибок, это может быть сложно обнаружить, если он быстро обновляется.

person Tom Gullen    schedule 24.03.2011
comment
Это должен был быть комментарий. - person Kangkan; 24.03.2011