我需要在多个html文件中引用一个全局变量,每个multilpe html文件都指的是一个常见的js文件。
的index.html sub1.html sub2.html
在每个html页面中,js包含在head标签
中<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<link rel="stylesheet" href="/css/Main.css" type="text/css"/>
<script src="/js/Main.js" ></script>
</head>
从一个html到另一个html的导航来自js函数,如。
从index.html说到sub1.html
window.location.href='/forms/sub1.html';
我已经声明了一个全局变量globalCount,以检查在Main.js的全局范围内完成了多少次导航
var globalCount=1;
并在导航功能中递增。
但是对于每个html页面,globalCount变量都重新初始化为1,即使Main.js没有多次下载。
我试过通过window.globalCount声明,没有运气。
在多个htmls中使用相同的全局变量但在同一个js文件中的任何简单方法。
希望你能理解这个问题。
答案 0 :(得分:2)
简单!使用Cookie https://developer.mozilla.org/en/DOM/document.cookie
这将允许您通过用户的系统访问您的变量。
答案 1 :(得分:2)
您的JS文件(或任何JS文件)不会自行下载和运行;在加载和替换HTML页面时,它不会作为一种保留在内存中的控制器。包含的JS文件中的代码的范围和生命周期与HTML页面中内联的代码基本相同,因此当您导航到新页面时,即使新页面引用相同的包含文件,JS也会消失。正如你所见。
如果您根据Matt Lo的回答使用cookie来存储变量的值,那么您的JS脚本可以从那里获取值。或者您可以将其作为查询字符串参数添加到每个页面的URL末尾(如'sub1.html?globalCount=' + globalCount
)并从那里访问它。
(或者您可以提交这些值并使用某种服务器端技术在新页面中回显它们,但这太过分了。)