我删除了脚本,但是放回去时说它已经存在

时间:2019-01-07 10:52:25

标签: javascript html google-chrome

我正在做一个“一页”网站,在该网站上,主脚本会删除脚本并将脚本添加到每一页。

但是...当您重新加载上一页时,它会复制脚本,因此会复制现有功能。

这是页面更改脚本:

let scriptBody = null;
function GetPageOnBody(page) {
    $.get("pages/"+page+".html", function(site){
        if(scriptBody != null) removejsfile(scriptBody);
        $('#pageBody').html(site);

        scriptBody = document.createElement('script');    
        switch(page){
            case "login":
                window.document.title = "LOGIN - DASHBOARD";
                scriptBody.setAttribute('src', "assets/js/page-login.js");
                break;
            case "home":
                window.document.title = "HOME - DASHBOARD";
                scriptBody.setAttribute('src', "assets/js/page-home.js");
                break;
            case "artigos":
                window.document.title = "ARTIGOS - DASHBOARD";
                scriptBody.setAttribute('src', "assets/js/page-artigos.js");
                break;
         }   
         document.body.appendChild(scriptBody);
    }).fail(function(){
        // error 404 page
    }).done(function(){
        // show page
    });
}

这是删除脚本的代码:

function removejsfile(script){
    let filename = script.getAttribute("src").split("/").slice(-1);
    let allscripts = document.getElementsByTagName("script");
    for (let i = allscripts.length; i >= 0; i--){
        if (allscripts[i] && allscripts[i].getAttribute("src") != null && allscripts[i].getAttribute("src").indexOf(filename) != -1)
            allscripts[i].parentNode.removeChild(allscripts[i]);
    }
    delete script;
}

我已经尝试了几种方法,但是没有成功。

谢谢

0 个答案:

没有答案