2011-10-05 76 views
2

我想知道是否有辦法再次渲染一個網頁,從而再次調用所有的onload事件,並重新繪製CSS?重新渲染一個網頁

例如,假設您更改了鏈接到onload事件的javascript文件的路徑,並且編輯後的頁面需要重新加載而無需刷新,以使更改生效。

回答

1

測試,現在正在努力:

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

「無刷新刷新」聽起來有點讓我困惑。

但是,我不知道這是你在找什麼,但window.location.reload()觸發一個頁面重新加載,因此會加載你的鏈接的JavaScript文件。

但是改變鏈接文件並重新加載頁面並不是一件好事。如果你的動態文件像使用Ajax一樣以動態方式加載,會更好。所以你不需要重新加載整個頁面。像JQuery,ExtJS或其他框架提供了方法來做到這一點很容易。