在JavaScript中有没有办法让一个变量保持"活着"并可在一个窗口中打开的所有页面中访问?
我创建了两个页面dog.php和cat.php.
dog.php是这样的:
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
MyWord = "Bingo";
document.getElementById("demo").innerHTML = window.MyWord;
</script>
<p><a href="http://example.com/my_wnd_obj/cat.php">go to the cat page</a></p>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
而cat.php是这样的:
<!DOCTYPE html>
<html>
<body>
<p id="KittyTalks"></p>
<script>
document.getElementById("KittyTalks").innerHTML = window.MyWord;
</script>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
但是,cat.php读取"undefined"而不是"Bingo",这意味着cat.php页面没有看到在dog.php中创建的变量MyWord.
有没有办法让它看到变量?
它不是一个变量,但您可以使用会话存储.要实现您的示例,您可以执行以下操作:
sessionStorage.setItem('MyWord', 'Bingo');
Run Code Online (Sandbox Code Playgroud)
在第一页,然后
document.getElementById("KittyTalks").innerHTML = sessionStorage.getItem('MyWord');
Run Code Online (Sandbox Code Playgroud)
在第二页.
如果你想获得一点点发烧友,你可以定义一个属性.在这两个页面上,您将放置如下代码:
Object.defineProperty(window, "MyWord",
{
get:()=>sessionStorage.getItem("MyWord"),
set:(val)=>sessionStorage.setItem("MyWord", val)
}
);
Run Code Online (Sandbox Code Playgroud)
然后你可以像常规变量一样使用它.
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |