[英]Re-render a webpage
我想知道是否有一种方法可以重新渲染网页,从而再次调用所有onload事件并重绘CSS?
例如,假设您更改了链接到onload事件的javascript文件的路径,并且需要重新加载已编辑的页面而无需刷新即可使更改生效。
经过测试,现在可以正常工作:
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
“重新加载而不刷新”听起来让我有些困惑。
但是我不知道这是否是您要寻找的,但是window.location.reload()
触发页面重新加载,因此将加载您链接的javascript文件。
但是更改链接文件并重新加载页面不是一件好事。 如果以动态方式(例如使用Ajax)加载动态文件会更好。 因此,您无需重新加载整个页面。 诸如JQuery,ExtJS等框架提供了轻松实现此目的的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.