不同javascript文件的全局变量

不同javascript文件的全局变量,javascript,Javascript,我有一个web应用程序,它有两个html页面(与javascript文件js1.js、js2.js相关的html1、html2) 当我单击html1上的按钮时,它将导航到html2。 我知道有一种方法可以使用url将参数从html1/js1/js传输到html2/js2.js 是否有一种机制可以设置j1.js和j2.js都可以访问的变量?(如c中的全局变量) 欢迎任何评论?这不是直接可能的,因为每个页面都使用自己的窗口对象命名空间加载 i、 js1.js中的一个全局变量(在page1.html中

我有一个web应用程序,它有两个html页面(与javascript文件js1.js、js2.js相关的html1、html2) 当我单击html1上的按钮时,它将导航到html2。 我知道有一种方法可以使用url将参数从html1/js1/js传输到html2/js2.js

是否有一种机制可以设置j1.js和j2.js都可以访问的变量?(如c中的全局变量)


欢迎任何评论?

这不是直接可能的,因为每个页面都使用自己的窗口对象命名空间加载

i、 js1.js中的一个全局变量(在page1.html中使用)实际上是page1中窗口对象的一个成员。类似地,page2.html中的全局变量也是该页面窗口对象的成员。这两个窗口对象在意义上完全不同没有站点范围的窗口或站点对象可以存储全局变量以供整个站点使用

但是,您可以使用
window.localStorage
在站点的各个页面上共享变量/值

示例

设定值:

window.localStorage.setItem('myglobal', "hello");
var myglobal = window.localStorage.getItem('myglobal');
获取价值:

window.localStorage.setItem('myglobal', "hello");
var myglobal = window.localStorage.getItem('myglobal');

这是不可能的,因为每个页面都使用自己的窗口对象命名空间加载

i、 js1.js中的一个全局变量(在page1.html中使用)实际上是page1中窗口对象的一个成员。类似地,page2.html中的全局变量也是该页面窗口对象的成员。这两个窗口对象在意义上完全不同没有站点范围的窗口或站点对象可以存储全局变量以供整个站点使用

但是,您可以使用
window.localStorage
在站点的各个页面上共享变量/值

示例

设定值:

window.localStorage.setItem('myglobal', "hello");
var myglobal = window.localStorage.getItem('myglobal');
获取价值:

window.localStorage.setItem('myglobal', "hello");
var myglobal = window.localStorage.getItem('myglobal');

变量和值可以通过querystring在页面中传递。 看看这个

如果您严格需要创建Javascript全局变量,则必须在两个页面中都包含一个公共代码段:

var myGlobalVar;

但这只表示两个脚本都可以访问的存储。您必须设置它的值。

变量和值可以通过querystring在页面中传递。 看看这个

如果您严格需要创建Javascript全局变量,则必须在两个页面中都包含一个公共代码段:

var myGlobalVar;

但这只表示两个脚本都可以访问的存储。您必须设置其值。

您可以解析
window.location.href
来提取参数,在一个页面中设置cookie,在另一个页面中检索它们(),这也需要解析或使用服务器端解决方案


如果您在interwebs中查找,很可能可以找到URL和Cookie的解析器。

您可以解析
window.location.href
要提取参数,在一个页面中设置Cookie,在另一个页面中检索它们(),这也需要解析或使用服务器端解决方案


最有可能的是,如果您在interwebs中查找,您可以找到URL和Cookie的解析器。

一个黑客解决方案是将其存储到window.name字段中。这在浏览器的同一窗口/选项卡中共享。 我个人不喜欢它。这个变量不应该这样使用

存在要保持状态的库:


或者,您可以编写自己的代码,将变量存储在会话(需要服务器端编程)、HTML5存储、cookie等中。

一个黑客解决方案是将其存储在window.name字段中。这在浏览器的同一窗口/选项卡中共享。 我个人不喜欢它。这个变量不应该这样使用

存在要保持状态的库:


或者,您可以编写自己的代码,将变量存储在会话(需要服务器端编程)、HTML5存储、cookie等中。

此全局变量的值仍然不会在页面之间传递。我的意思是,你不能从第1页设置一个值,然后通过上面的方法在第2页得到这个值。我明白了。查询字符串方法应该可以工作。为什么不在服务器端传递值呢?这个全局变量的值仍然不会在页面之间传递。我的意思是,你不能从第1页设置一个值,然后通过上面的方法在第2页得到这个值。我明白了。查询字符串方法应该可以工作。为什么不通过value server端?相关问题:,相关问题:,快速兼容性说明:IE7或某些移动浏览器不支持此功能,因此如果您计划支持这些浏览器,请确保此功能不是必需的(我倾向于假设所有JS无论如何都应该是非必需的…)如果要支持IE7及以上版本,我建议您考虑一个基于cookie的解决方案。快速兼容性说明:IE7或某些移动浏览器不支持此功能,因此如果您计划支持这些浏览器,请确保此功能是非必需的(我倾向于假设所有JS都应该是非必需的…)如果要支持IE7及以上版本,我建议您考虑基于cookie的解决方案。ADC的anwser也是一个解决方案,但我无法选择2个答案:-(ADC的anwser也是一个解决方案,但我无法选择2个答案:-(