【问题标题】:Send data across two pages using JavaScript使用 JavaScript 跨两个页面发送数据
【发布时间】:2020-09-08 10:45:22
【问题描述】:

我是一名 .NET 堆栈开发人员,但我的 JavaScript 不是那么强。我想传递一个 html 页面的脚本标记中定义的变量并在不同的页面中检索它。当执行控制到达第二页时,分配给变量的值已经丢失,随后testVar 为空。我正在尝试实现类似的目标:

在 C# 中,我会定义一个静态全局变量来实现这一点。

HTML 第 1 页:

<script>
var someVariable = "Hello Word";
</script>

HTML 页面 2:

<script>
var testVar = someVariable;
//Expecting testVar to be assigned with Hello World
</script>

【问题讨论】:

  • 你不能以这种方式传递变量。如果在同一个域上,您可以利用 localStorage,但这闻起来有点奇怪。在“真实”示例的背景下,您究竟想做什么?
  • 我将当前 url 分配给 someVariable。我想把它分配给testVar,它将用于第 2 页中定义的锚标记,即第 2 页 HTML 将具有

标签: javascript


【解决方案1】:

您可以将变量存储在全局 window 对象中。

var someVariable = "Hello Word";

window.stored_value = someVariable;

window 对象是全局的,所以只需在另一个脚本中使用它。

HTML 第 2 页:

<script>

var testVar = window.stored_value;

</script>

请查看类似问题:

Storing a variable in the JavaScript 'window' object is a proper way to use that object?

【讨论】:

  • 那我如何在 HTML Page 2 中访问呢?
  • 我在 window 对象上使用了 localStorage
  • 请记住,localStorage 仅支持字符串格式,并以字符串形式返回值stackoverflow.com/questions/2010892/…
【解决方案2】:

要在您的 html 文件中访问外部 javascript,请创建一个单独的 .js 文件,例如 script.js 并在其中定义 someVariable,然后通过 script 标签将脚本添加到两个 html 文件中,如下所示 &lt;script src="script.js"&gt;&lt;/script&gt;

script.js文件中添加代码:

var someVariable = "Hello Word";

【讨论】:

  • 那如何在 HTML Page 2 中访问呢?
  • @Harold_Finch 和你一样,&lt;script&gt; var testVar = someVariable; &lt;/script&gt; 但这次 testVar 将被定义
【解决方案3】:

您很可能需要查看postMessage API,但不知道更多关于这两个窗口以及它们之间的关系(例如,通过单击第一个链接打开)它是很难给你更多的方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 2021-07-19
    • 1970-01-01
    相关资源
    最近更新 更多