gpt4 book ai didi

javascript - 在一个窗口中创建一个所有打开的页面都能看到的变量,这可能吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:01:32 26 4
gpt4 key购买 nike

在 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>

cat.php 是这样的:

<!DOCTYPE html>
<html>
<body>

<p id="KittyTalks"></p>

<script>
document.getElementById("KittyTalks").innerHTML = window.MyWord;
</script>
</body>
</html>

但是 cat.php 读取“undefined”而不是“Bingo”,这意味着 cat.php 页面看不到在 dog.php 中创建的变量 MyWord。

有什么办法让它看到那个变量吗?

最佳答案

它不是一个变量,但你可以使用 Session Storage .要实现您的示例,您可以:

sessionStorage.setItem('MyWord', 'Bingo');

在第一页,然后

document.getElementById("KittyTalks").innerHTML = sessionStorage.getItem('MyWord');

在第二页。

如果你想变得更漂亮一点,你可以define a property .在这两个页面上,您都可以放置如下代码:

Object.defineProperty(window, "MyWord",
{
get:()=>sessionStorage.getItem("MyWord"),
set:(val)=>sessionStorage.setItem("MyWord", val)
}
);

然后您可以像使用常规变量一样使用它。

关于javascript - 在一个窗口中创建一个所有打开的页面都能看到的变量,这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41246473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com