Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 跨多个HTML和全局变量引用的通用js文件_Javascript_Html_Global - Fatal编程技术网

Javascript 跨多个HTML和全局变量引用的通用js文件

Javascript 跨多个HTML和全局变量引用的通用js文件,javascript,html,global,Javascript,Html,Global,我需要跨多个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="s

我需要跨多个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>
我已经声明了一个全局varibale globalCount,以检查Main.js的全局范围内进行了多少次导航

var globalCount=1;
并在导航函数中递增

但是对于每个html页面,globalCount变量都被重新初始化为1,即使Main.js没有被多次下载

我试过通过窗口申报。全球账户,运气不好

跨多个HTML但在同一js文件中使用通用全局变量的任何简单方法。

希望你能理解这个问题。

简单!用饼干

这将允许您通过用户系统访问变量。

简单!用饼干

这将允许您通过用户系统访问您的变量。

您的JS文件(或任何JS文件)未下载并自行运行;当HTML页面被加载和替换时,它不会充当一种留在内存中的控制器。包含的JS文件中的代码的范围和生命周期基本上与HTML页面中内联包含的代码相同,因此当您导航到新页面时,即使新页面引用相同的包含文件,JS也会消失。如你所见

如果按照Matt Lo的回答使用cookie存储变量的值,那么JS脚本可以从中获取值。或者,您可以将其作为查询字符串参数添加到每个页面URL的末尾(如
'sub1.html?globalCount='+globalCount
)并从那里访问它

(或者您可以提交这些值,并使用某种服务器端技术在新页面中回显它们,但这太过分了。)

您的JS文件(或任何JS文件)不会下载并自行运行;当HTML页面被加载和替换时,它不会充当一种留在内存中的控制器。包含的JS文件中的代码的范围和生命周期基本上与HTML页面中内联包含的代码相同,因此当您导航到新页面时,即使新页面引用相同的包含文件,JS也会消失。如你所见

如果按照Matt Lo的回答使用cookie存储变量的值,那么JS脚本可以从中获取值。或者,您可以将其作为查询字符串参数添加到每个页面URL的末尾(如
'sub1.html?globalCount='+globalCount
)并从那里访问它


(或者您可以提交这些值,并使用某种服务器端技术在新页面中回显它们,但这太过分了。)

是的。。这是一个解决办法,另一个是通过html5本地存储,但想知道我们是否可以通过js方式来实现,因为一些用户可能会禁用cookie,并且需要其他html5支持。另一种方法是传递查询字符串,但需要做一些工作。(尽管有些javascript可以帮助实现自动化),HTML5存储并不是跨浏览器兼容性的好选择。与禁用cookies的浏览器相比,不完全支持HTML5存储的用户更多。是的。。这是一个解决办法,另一个是通过html5本地存储,但想知道我们是否可以通过js方式来实现,因为一些用户可能会禁用cookie,并且需要其他html5支持。另一种方法是传递查询字符串,但需要做一些工作。(尽管有些javascript可以帮助实现自动化),HTML5存储并不是跨浏览器兼容性的好选择。与禁用Cookie的浏览器相比,您有更多的用户不完全支持HTML5存储。感谢您的解释,但我仍然不明白为什么每次针对不同的html重置/刷新全局变量,即使它在同一个js文件中。需要了解更多关于js和DOM如何工作的信息!!JS基于每页的运行时工作。在软件环境中,页面加载时会重置工作区。这意味着,如果在一个页面中分配一个变量,它只存在于单个页面请求中“并调用第一页中的JS函数,它的工作方式就好像它仍然加载在内存中,或者附加了somepage.html,并且是第一页的一部分。感谢您的解释,但我仍然不明白为什么每次针对不同的html重置/刷新全局变量,即使它在同一个js文件中。需要更多地了解js和DOM是如何工作的!!JS基于每页的运行时工作。在软件环境中,页面加载时会重置工作区。这意味着,如果在一个页面中分配一个变量,它只存在于该单个页面请求中。根据我的经验,至少在jquery mobile中,当你调用a href=“”somepage.html”并调用第一个页面中的JS函数时,它的工作方式就好像它仍然加载在内存中,或者somepage.html被附加并且是第一个页面的一部分
var globalCount=1;