【问题标题】:How to call function on Safari after page load?页面加载后如何在 Safari 上调用函数?
【发布时间】:2020-09-05 19:53:14
【问题描述】:

我需要在加载并从 URL 获取参数后重定向网页。我可以通过单击按钮来做到这一点。

但是,我想自动重定向页面(无需用户输入,从而获得更好的用户体验)。在这里我使用window.addEventListener('load', () => handleClick()),它在 Chrome 上运行良好,但它并不总是在 Safari(桌面和移动)上触发。

我可以通过在处理程序中添加 alert('Beginning'); 来调试它 - 在 Chrome 上,它会在页面加载后自动触发,但在 Safari 上不会。

我该如何解决这个问题?

const handleClick = async (event) => {

  alert('Beginning'); //For debugging


  const stripe = await stripePromise;
  const { error } = await stripe.redirectToCheckout({
    param,
  });
}

if (typeof window !== `undefined`) {
const param = new URLSearchParams(window.location.search).get('param');
}

const Page = () => {

  if (typeof window !== `undefined`) {
  window.addEventListener('load', () => handleClick())
  }

  return (
    <section >

      <button role="link" onClick={handleClick}> //Only for fallback
      Press
    </button>

    </section>
  );
};

export default Page;

【问题讨论】:

标签: javascript html reactjs dom addeventlistener


【解决方案1】:

无需点击按钮即可使用 history.push 功能。因为它一被调用就会触发。

history.push(location)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-03
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多