【问题标题】:How to get actual client side URL?如何获取实际的客户端 URL?
【发布时间】:2021-01-07 03:39:23
【问题描述】:

我有一个弹出窗口中的 WordPress 联系表格。我需要添加将电子邮件发送到正文的相同 url。我试过$body .= '<p>' . wp_get_referer() . '</p>';,但它只打印引用页面,如https://demo.com/page/,但我需要实际的URL,即https://demo.com/page/#fdee/1-22

有没有办法在提交表单时读取 URL?

【问题讨论】:

    标签: javascript php wordpress


    【解决方案1】:

    锚片段/哈希不会作为 HTTP 请求的一部分发送到服务器。此外,它不会作为Referer 标头的一部分发送。因此,它不能通过 PHP 或任何服务器端访问。

    您必须使用 JavaScript 在客户端捕获该 URL,并将其作为隐藏的表单字段提交。

    最简单的方法是添加一个表单提交处理程序来添加适当的字段:

      const formEl = document.querySelector('form');
      formEl.addEventListener('submit', (e) => {
        const referrerEl = document.createElement('input');
        referrerEl.type = 'hidden';
        referrerEl.name = 'referrer';
        referrerEl.value = window.location.toString();
        formEl.appendChild(referrerEl)
      });
    

    【讨论】:

    • 谢谢。我想它必须与 JavaScript 一起工作。您是否有任何关于如何捕获 URL 并将其作为附加字段提交的工作示例?
    • window.location.hash 是您所需要的。我会在几分钟内为你写一个例子。
    • 谢谢。一个例子会很好看。
    • 布拉德,感谢您的努力,但我无法让它工作。我可以稍后在这里粘贴整个表单代码。
    猜你喜欢
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    • 2016-01-16
    相关资源
    最近更新 更多