【问题标题】:Re-render a webpage重新渲染网页
【发布时间】:2011-10-05 05:28:42
【问题描述】:

我想知道是否有办法重新渲染网页,从而再次调用所有 onload 事件,并重新绘制 css?

例如,假设您更改了链接到 onload 事件的 javascript 文件的路径,并且编辑后的页面需要在不刷新的情况下重新加载才能使更改生效。

【问题讨论】:

    标签: javascript html node.js render


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      “不刷新就重新加载”对我来说听起来有点混乱。

      但是我不知道这是否是您要查找的内容,但window.location.reload() 会触发页面重新加载,因此会加载您链接的 javascript 文件。

      但是更改链接文件并重新加载页面并不是一件好事。如果您的动态文件以动态方式加载,例如使用 Ajax,那就更好了。所以你不需要重新加载整个页面。 JQuery、ExtJS 或其他框架提供了轻松完成此操作的方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-10-19
        • 1970-01-01
        • 1970-01-01
        • 2017-03-20
        • 1970-01-01
        • 2012-12-28
        • 1970-01-01
        相关资源
        最近更新 更多