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

如何实现点击按钮刷新页面后显示#results div?

问题

我制作了一个分为输入区和结果区的计算器,结果区关联Google Sheet,加载需要数秒时间。最初通过点击按钮跳转至另一页面显示结果,该方案可行。现在需要将输入区与结果区放在同一页面,请问能否让#results div保持隐藏状态,直到点击按钮刷新页面后再显示?

现有代码

<div class="calculator" data-calc-id="Lyh7nBH9MiharKMDu" data-type="framed"></div>
<script src="https://scripts.convertcalculator.com/embed.js" async="true"></script>

<div id="results" class="results-style">
  <div class="calculator" data-calc-id="ogNjyteRSgnEHv6Ps" data-type="framed"></div>
  <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
  <script src="https://www.gstatic.com/charts/loader.js"></script>
  <canvas id="myChart"></canvas>
</div>
解决方案

可以通过CSS默认隐藏结果区,再结合JavaScript实现点击按钮后显示的效果,分两种场景处理:

场景1:不刷新页面,提交后直接显示结果区

步骤1:添加CSS隐藏结果区

在样式中设置#results默认隐藏:

#results {
  display: none;
}

步骤2:监听计算器提交事件并显示结果区

利用ConvertCalculator的事件监听API,在输入计算器提交完成后显示结果区,按需重新加载结果计算器以获取最新数据:

document.addEventListener('DOMContentLoaded', function() {
  // 监听输入计算器的提交事件
  ConvertCalculator.on('submit', function(calc) {
    // 显示结果区
    document.getElementById('results').style.display = 'block';
    // 重新加载结果计算器确保数据最新
    ConvertCalculator.reload('ogNjyteRSgnEHv6Ps');
  });
});

场景2:点击按钮刷新页面后显示结果区

若需要强制刷新结果数据,可借助URL参数实现:

步骤1:添加触发按钮

在输入区下方添加按钮,点击时携带参数跳转至当前页面:

<button onclick="window.location.href = window.location.pathname + '?showResults=true';">计算并查看结果</button>

步骤2:页面加载时判断参数并显示结果区

添加JavaScript代码,在页面加载时检查URL参数,若存在则显示结果区:

window.addEventListener('load', function() {
  const urlParams = new URLSearchParams(window.location.search);
  if (urlParams.has('showResults')) {
    document.getElementById('results').style.display = 'block';
  }
});

补充说明

  • 场景1需确保ConvertCalculator嵌入脚本加载完成,事件监听才能正常触发;
  • 场景2适合需要彻底刷新数据、避免缓存的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 14:54:14