Перерисовать веб-страницу - PullRequest
2 голосов
/ 05 октября 2011

Мне было интересно, есть ли способ визуализировать веб-страницу заново, таким образом вызывая все события onload снова и перерисовывая css?

Например, допустим, вы изменили путь к файлу javascript, который связан с событием onload, и отредактированную страницу необходимо перезагрузить без обновления, чтобы изменения вступили в силу.

Ответы [ 2 ]

1 голос
/ 05 октября 2011

проверено, сейчас работает:

function fireEvent(element,event){
    if (document.createEventObject){
    // dispatch for IE
    var evt = document.createEventObject();
    return element.fireEvent('on'+event,evt)
    }
    else{
    // dispatch for firefox + others
    var evt = document.createEvent("HTMLEvents");
    evt.initEvent(event, true, true ); // event type,bubbling,cancelable
    return !element.dispatchEvent(evt);
    }
}

setTimeout(function(){

    var links = document.getElementsByTagName("link");
    var st = [];
    for(var x=0;x<links.length;x++)
    if(links[x].getAttribute("rel") == "stylesheet")
    {
        st.push(links[x]);
        links[x].wasAtt = links[x].getAttribute("href");
        links[x].setAttribute("href", "");
    }
    setTimeout(function()
    {
        for(var x =0;x<st.length;x++)
            st[x].setAttribute("href", st[x].wasAtt);
        setTimeout(function(){
            fireEvent(window, "load");
        },1000);
    },1000);
},5000); // test reload after five seconds
0 голосов
/ 05 октября 2011

«перезагрузка без обновления» звучит немного смущающе для меня.

Однако я не знаю, является ли это тем, что вы ищете, но window.location.reload() вызывает перезагрузку страницы и, таким образом, загружает ваши связанные файлы JavaScript.

Но изменение связанных файлов и перезагрузка страницы не очень хорошая вещь. Было бы лучше, если бы ваши динамические файлы загружались динамически, как при использовании Ajax. Таким образом, вам не нужно перезагрузить всю страницу. Такие фреймворки, как JQuery, ExtJS или другие, предоставляют методы, позволяющие легко это сделать.

...