javascript - “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 或会话范围的变量或其他东西来解决这个问题,但我需要了解为什么会发生这个特定问题。感谢您的理解。
解决方案
我在这里注意到了一些事情。首先 - 你说 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
推荐阅读
- python-3.x - 找不到 Pip3 安装的包
- apache-kafka - 如何防止 Kafka Connect JDBC 连接器从开始/最早的消息读取,而只读取最新的消息?
- java - Issue with de-serialization from json to object containing enums
- google-app-engine - 如何从 Google Cloud SDK Repo 中获取我的 SQL 数据库
- angular - Snackbar 在部署时填满整个屏幕
- oauth-2.0 - how to generate X-RapidAPI-Key without accessing https://rapidapi.com via Browser
- c# - Botskills Connect 错误:应提供参数“cs”或“ts”之一
- excel - 范围标准中有空格的 SUMIFS
- python-3.x - 在 Pandas 中将原始子 DataFrame 添加到更大的 DataFrame 后,是否可以恢复它们?
- python - 使用正则表达式提取字符串中的浮点数