【问题标题】:Query string variable added automatically to the url查询字符串变量自动添加到 url
【发布时间】:2023-03-25 03:41:01
【问题描述】:

我对编程还很陌生,只是弄脏了自己的双手。我试图根据 URL 的长度向用户显示一些东西。以下是代码

<!DOCTYPE HTML>
<html>

<head>
    <title>Random</title>
    <meta charset="utf-8" />
</head>

<body id="main" style="display:none">
    <h1>
        Paste something
    </h1>
    <form action="abcd.php" method="post">
        <input type="text" name="URL" placeholder="random url" id="something" required>
        <input type="submit" value="do something">
    </form>
</body>
<script>
    if (window.location.href.length - 1 > 35) {
        alert("redirect");
    } else {
        alert("show");
    }
</script>

</html>

在我的例子中,URL 的最小长度是 35 个字符。但是,当我第一次添加这么长的 URL 时,会显示“重定向”警报,而不是显示“显示”警报。第二次运行良好。在我删除缓存之后,整个故事又重复了一遍。

PS:我自己添加的查询字符串变量。例如,当我点击 domain.com 时,它自己在地址栏中写入了domain.com/?i=1(仅当我在删除缓存后第一次点击 URL 时)。

我怎样才能让它在第一次运行?任何帮助表示赞赏。

【问题讨论】:

  • 为什么定义body teg不可见??
  • 因为我只想在 url 的长度小于 35 时才显示给用户。
  • 你为什么不解析查询呢?根据查询长度做任何事情是一种不好的方法,因为它可能会在未来不改变逻辑的情况下发生变化。例如,使用一些参数和哈希打开当前页面,如下所示:stackoverflow.com/questions/52268763/… 并打开控制台并输入document.location。您将得到一个可以轻松解析的对象。
  • 好的。我会这样做,但为什么它自己添加“?i = 1”?有什么想法吗?
  • 此外,在我的情况下,最小长度保持不变直到永恒。所以我认为这在未来并不重要。你说什么?

标签: javascript php runtime-error query-string


【解决方案1】:

我不知道为什么第一次加载页面时添加了查询字符串。使用下面的示例从 URL 中删除查询字符串并计算没有查询字符串的 URL 的长度。

<script>
  var url=window.location.protocol;
      url +="//"+window.location.host;
      url +=window.location.pathname;
     if(url.length-1 > 35){
       alert("redirect");
     }else{
       alert("show");
     }
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 2015-07-20
    • 2019-12-01
    相关资源
    最近更新 更多