【问题标题】:How to get URL from browser address bar?如何从浏览器地址栏中获取 URL?
【发布时间】:2010-11-14 17:04:40
【问题描述】:

我想做一些 js 分析,所以我需要知道如何将用户在地址栏中输入的任何内容作为 js 变量获取,这样我才能知道最常见的拼写错误是什么。这样我就可以将最常见的拼写错误重定向到正确的地址并减少 404 页面请求。

浏览器中的用户输入示例:

https://stackoverflow.com/questions

.......................

我尝试过使用

document.location

但这显示的是用户在哪个页面(即 404 页面地址),而不是他们输入的内容

【问题讨论】:

    标签: javascript url


    【解决方案1】:

    这将为您提供用户所在的确切网址:

    document.location.href
    

    无法确定用户在提交请求之前输入了什么(出于安全原因)。

    【讨论】:

    • 这将如何满足 OP 的要求?他想要键入到 URL 栏中的地址,任何重定向到错误页面之前。
    【解决方案2】:

    JavaScript 为您提供了许多方法来获取在 Web 浏览器地址栏中显示的当前 URL。您可以使用 Window 对象的 Location 对象属性来获取这些详细信息。

    1. href => 这将返回显示在地址栏中的整个 URL。
    2. host => 这将在地址栏中返回 URL 的主机名和端口。
    3. hostname => 这将只返回地址栏中 URL 的主机名。
    4. port => 这将只返回地址栏中 URL 的端口详细信息。
    5. protocol => 这将在地址栏中返回 URL 的协议。就像 URL 使用的是 HTTP(无 SSL)或 HTTPS(有 SSL)。
    6. pathname => 这将返回地址栏中 URL 的路径名(域名后的值)。
    7. hashpathname => 这将返回 URL 的锚点部分,包括 hash singh (#)。
    8. search=> 这将返回 URL 的查询部分,例如以问号 (?) 开头的部分。
      console.log(' href => ' + window.location.href);
      console.log(' host => ' + window.location.host);
      console.log(' hostname => ' + window.location.hostname);
      console.log(' port => ' + window.location.port);
      console.log(' protocol => ' + window.location.protocol);
      console.log(' pathname => ' + window.location.pathname);
      console.log(' hashpathname => ' + window.location.hash);
      console.log(' search=> ' + window.location.search);

    参考:https://tecadmin.net/get-current-url-web-browser-using-javascript/

    【讨论】:

      【解决方案3】:

      您将不得不在服务器上执行此操作,因为这是原始 404 响应的来源。服务器肯定会收到错误的 URL,所以你要做的就是让你的服务器将它们保存在某个地方。

      【讨论】:

      • 知道怎么做吗?最好是在 php 页面中(以便 404 页面获取 url)?
      • 我不懂 php,所以我不确定你会如何在你的环境中做到这一点。通常 something 必须找出 URL 是伪造的,而这正是您必须配置或扩展的内容。
      【解决方案4】:

      许多内容管理系统会在您登陆 404 页面时保留 URL,因此您应该可以使用 document.location.href,然后只需检查错误页面上的分析即可。

      【讨论】:

        【解决方案5】:

        这是获取重新加载链接地址的好方法,如果有的话,它应该有在地址栏中输入的 URL。

        var arr = [], l = document.links;
        for(var i=0; i<l.length; i++) {
          arr.push(l[i].href);
        }
        

        来自:https://stackoverflow.com/a/3871370/1188090

        【讨论】:

          【解决方案6】:
          javascript: alert(window.location.hostname);
          

          如果要显示路径名,请将.hostname 替换为.pathname

          【讨论】:

            猜你喜欢
            • 2015-02-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-06-25
            • 2011-05-05
            • 1970-01-01
            • 2013-07-04
            相关资源
            最近更新 更多