You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将变量传入window.open()并在打开的HTML页面中使用?

解决方法

方法1:通过URL查询参数传递(最常用)

把变量作为URL的查询参数拼在calculate.html后面,新页面通过解析URL获取参数。

主页面修改后的代码:

<script>
  const Gobtn = document.getElementById("Go");

  Gobtn.addEventListener("click", function () {
    // 点击时才获取最新值,避免页面加载时value为空
    const value = document.getElementById("oper").value;
    // 拼上查询参数,用encodeURIComponent处理特殊字符
    const url = `calculate.html?operValue=${encodeURIComponent(value)}`;
    window.open(url, "_blank");
  });
</script>

calculate.html中获取参数的代码:

<script>
  // 解析URL中的查询参数
  const urlParams = new URLSearchParams(window.location.search);
  const value = urlParams.get('operValue');
  // 现在可以直接使用value变量
  console.log(value);
</script>

方法2:利用window.opener访问原页面变量

如果两个页面属于同域,新窗口可以通过window.opener直接访问原页面的变量,但要注意原页面不能被关闭,否则opener会失效。

主页面修改后的代码:

<script>
  let value;
  const Gobtn = document.getElementById("Go");

  Gobtn.addEventListener("click", function () {
    value = document.getElementById("oper").value;
    window.open("calculate.html", "_blank");
  });
</script>

calculate.html中获取变量的代码:

<script>
  // 直接访问原页面的value变量
  const value = window.opener.value;
  console.log(value);
</script>

方法3:通过本地存储(localStorage/sessionStorage)传递

把变量存在本地存储里,新页面直接读取,适合传递较复杂的数据,且不受原页面关闭影响。

主页面修改后的代码:

<script>
  const Gobtn = document.getElementById("Go");

  Gobtn.addEventListener("click", function () {
    const value = document.getElementById("oper").value;
    // 用sessionStorage存储,关闭浏览器会自动清除;用localStorage则持久保存
    sessionStorage.setItem('operValue', value);
    window.open("calculate.html", "_blank");
  });
</script>

calculate.html中获取变量的代码:

<script>
  const value = sessionStorage.getItem('operValue');
  // 使用后可删除,避免数据残留
  sessionStorage.removeItem('operValue');
  console.log(value);
</script>

内容的提问来源于stack exchange,提问作者anonymous

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 17:52:04