控制JavaScript函数只执行一次

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

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

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


如何实现此功能

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

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

如果您的5个页面位于同一个站点下(可能是这种情况),您可以使用localStorage添加一个键来检查脚本是否第一次被调用

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

您可以为此使用
localStorage
。代码执行后,设置一个
localStorage
变量,即
localStorage.setItem(,)
,并在函数中检查
localStorage
是否已设置,即
localStorage.getItem(“lastname”)
。如果其设置不执行代码

您可以为此使用
localStorage
。代码执行后,设置一个
localStorage
变量,即
localStorage.setItem(,)
,并在函数中检查
localStorage
是否已设置,即
localStorage.getItem(“lastname”)
。如果其设置不执行代码

最好能更好地了解您的设置和案例研究


如果我理解正确的话,您有5个单独的HTML页面(并且您没有运行一个页面应用程序[SPA]),那么仅通过浏览器和缓存是不可能的。如果您想记住设置,您需要使用localStorage或Cookie保存这些设置(正如弹出的一些答案所建议的那样),但由于它们是5个不同的html页面,Js会做什么使您不想在第二次加载页面时重新运行它?

最好更好地了解您的设置和案例研究


如果我理解正确的话,您有5个单独的HTML页面(并且您没有运行一个页面应用程序[SPA]),那么仅通过浏览器和缓存是不可能的。如果要记住设置,需要使用localStorage或Cookie保存这些设置(正如弹出的一些答案所建议的)但是,由于它们是5个不同的html页面,Js做了什么使您不想在第二次加载页面时重新运行它呢?

例如,在
localStorage
中存储一个标志。Cookie或localStorage将在缓存清除后仍然有效例如,在
localStorage
中存储一个标志。Cookie或localStorage将在缓存清除后仍然有效评论。你离评论只有几步之遥。不要把rep浪费在被否决的答案上,这些答案实际上是评论,但要等到你有足够的答案来评论好了,现在你可以转换为评论:)这是一个有效的评论。你离评论只有几步之遥。不要把代表浪费在那些被否决的答案上,这些答案实际上是评论,但要等到你们有足够的时间来评论好了,现在你们可以转换成评论:)谢谢。这很有帮助,非常感谢。这很有帮助,非常感谢。这很有帮助,非常感谢。这很有帮助