首页 > 解决方案 > “location.assign(url)”有时似乎会导致移动设备上的 URL 错误,但在大多数情况下都可以正常工作

问题描述

我有一个超时的页面 - 它必须在加载 60 分钟后自动重定向到另一个特定的 URL,例如“http://example.com/?x=1”。所以我简单地添加了setTimeout(function() { location.assign('http://example.com/?x=1'); }, 60000);到页面的 JavaScript。通常这工作得很好,但有时它以“http://example.com/”结束,不知何故丢失了“x”参数。这可能只发生在移动浏览器上。一位用户在台式机上报告了同样的问题,但这可能是侥幸。我猜这是因为移动浏览器闲置一个小时可能会被操作系统杀死,当我重新打开它时,它会默认进入主页。但为什么?它不应该记住完整的 URL 并在重新激活后返回它吗?有些事情没有意义。有没有人遇到过这样的问题或知道为什么会发生这种情况?这发生在各种平台和浏览器上。

是的,我知道我可能可以使用 cookie 或会话范围的变量或其他东西来解决这个问题,但我需要了解为什么会发生这个特定问题。感谢您的理解。

标签: javascriptmobile

解决方案


我在这里注意到了一些事情。首先 - 你说 60 分钟,但60000只有 60 秒 :) 关于为什么你会在设置位置时丢失查询字符串......这非常奇怪,我不知道为什么会发生这种情况。好消息是,也许您根本不需要 JavaScript?您可以使用元标记!

<!-- Redirect page after 3 seconds -->
<meta http-equiv="refresh" content="3;url=https://www.mozilla.org">

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta


推荐阅读