我正在做一个“一页”网站,在该网站上,主脚本会删除脚本并将脚本添加到每一页。
但是...当您重新加载上一页时,它会复制脚本,因此会复制现有功能。
这是页面更改脚本:
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;
}
我已经尝试了几种方法,但是没有成功。
谢谢