当您离开页面(并返回)时,javascript 中发生的所有事情都会被重置。因此,您需要一种方法来存储是否加载了某些内容。这取决于您希望“保存”/“记住”多长时间。有几个选项可供您保存此信息 - Cookie、HTML5 localStorage、HTML5 sessionStorage 以及您可用的任何服务器会话使用情况(如果适用)。所以如果你想实现这样的东西,你现在需要页面的代码加载,检查特定的存储,看看你是否设置了它。如果是这样,请注入脚本。这就是我的意思:
window.onload = function () {
if (checkIfInjected()) {
scriptInjection(true);
}
}
function toggleInjection() {
if (checkIfInjected()) {
scriptInjection(false);
} else {
scriptInjection(true);
}
}
function scriptInjection(inject) {
if (inject == true) {
var script = document.createElement('script');
script.src = 'some_Path';
script.id = 'injected_script_id';
document.getElementsByTagName('head')[0].appendChild(script);
// Set the storage to say that script is injected
} else {
var the_script = document.getElementById("injected_script_id");
the_script.parentNode.removeChild(the_script);
the_script = null;
// Set the storage to say that script has been removed (or remove from storage altogether)
}
}
function checkIfInjected() {
// The following syntax is wrong for anything - you need to use the correct getter for the storage type you use
return storage.contains("script_injected");
}
<input type="button" id="button1" onclick="toggleInjection();" />
现在由您来确定您想要的存储类型,因为它们都做不同的事情,包括存储方式、存储内容以及存储时间。