只控制一次JavaScript函数的执行

时间:2017-02-25 14:13:32

标签: javascript

我在JavaScript文件中有5个html页面和一个JavaScript函数DoInitialConfiguration()。用户可以打开五个html页面中的任何一个,无论打开哪个页面,我都希望这样,我在第一页访问时调用此函数。但也要记住,该函数已被调用一次,而不是在其他页面加载中调用它。我只有这5个html页面和具有该功能的JavaScript文件。我是JavaScript文件的所有者,但可以对html页面(我不拥有)进行有限的更改,例如加载JavaScipt文件并调用函数DoInitialConfiguration()。

由于JavaScript文件将保留在浏览器缓存中,有没有办法记住函数已使用JS文件中的任何变量调用一次。如果在清除浏览器缓存后重新加载页面,则可以再次调用DoInitialConfiguration()。

如何实现此功能

3 个答案:

答案 0 :(得分:3)

如果您的5个页面托管在同一个站点下(可能就是这种情况),您可以使用localStorage添加密钥来检查您的脚本是否第一次被调用。

if (localStorage.getItem("firstRun") != null) {
  // second run+ code goes here
} else {
  localStorage.setItem("firstRun", "ohyes");
  // first run code goes here
}

答案 1 :(得分:0)

您可以使用localStorage。代码执行后,设置localStorage变量,即localStorage.setItem(<key>, <value>),并在函数中检查localStorage是否已设置,即localStorage.getItem("lastname")。如果它的集合不执行代码。

答案 2 :(得分:0)

最好更好地理解你的设置和案例研究。

如果我理解正确,你有5个单独的HTML页面(并且你没有运行单页面应用程序[SPA])那么你想要做的事情就不可能只通过浏览器和缓存。如果你想记住你需要使用localStorage或cookies保存这些设置(因为弹出的一些答案已经建议)但是因为它们是5个不同的html页面,Js做了什么让你不想重新运行它第二页加载?