
在 js 函数中修改全局变量
问题描述
如何在一个网页中修改全局变量的值,让另一个网页也能使用修改后的值?
解决方法
在函数中使用全局变量时,实际上是在函数中创建了一个局部变量,而不会修改全局变量。要修改全局变量,可以使用以下方法:
使用 cookie
可以将变量值存储在 cookie 中。在另一个页面读取 cookie 的值,即可获取修改后的全局变量值。
// 在 t1.js 中
$('#tb').click(function () {
name = "世纪工程";
document.cookie = "name=" + name;
});// 在 t2.js 中
$(function () {
var name = getCookie("name");
document.getElementById("tp").textContent = name;
});
function getCookie(name) {
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i].trim();
if (cookie.startsWith(name + "=")) {
return cookie.substring(name.length + 1);
}
}
return "";
}其他方法
除了使用 cookie,还可以使用下列方法来修改全局变量:
立即学习“Java免费学习笔记(深入)”;
- 使用 html5 的 localstorage 和 sessionstorage 对象
- 使用一个外部 javascript 库,如 redux
- 通过事件广播或消息传递机制在页面之间共享数据










