【问题标题】:How to send e-mail when someone clicks on tel link without reloading the page当有人点击电话链接而不重新加载页面时如何发送电子邮件
【发布时间】:2018-10-10 07:39:09
【问题描述】:

我需要一个比 Google Analytics(分析)更精确的解决方案来跟踪来自不同页面的电话。我正在考虑实施一种解决方案,每次访问者单击“电话:”链接时发送电子邮件,但无需重新加载页面。

这可能吗?

【问题讨论】:

  • 如果你想在不重新加载页面的情况下做任何事情,你需要使用基于客户端而不是基于服务器的东西,例如 JS ajax 调用
  • 如果您为所有a[href^=tel:] 元素设置onclick 处理程序,该处理程序会触发同步(不是async)XHR 请求以通知您的跟踪网络服务。当然,您的用户会讨厌您(同步请求会破坏 UX),如果处理时间过长,浏览器甚至可能会忽略您的处理程序。
  • 我猜你必须使用 Javascript 来处理链接上的点击事件,发送带有数据的 ajax 请求(然后 PHP 会发送一封电子邮件),然后 Javascript 会重新- 触发链接上的真实点击事件。那可能行得通。但是您自己尝试过什么?
  • 为什么不将点击存储在数据库中而不是通过电子邮件发送?请记住,如果服务器/服务位于欧洲国家/地区,请确保遵守 GDPR。

标签: javascript php html tel


【解决方案1】:

如果要基于事件触发动作,需要使用JS/jQuery来实现。

在这种情况下,您的要求是,当用户点击该项目时发送一封电子邮件。

为此,您可以像这样将事件侦听器附加到元素 (示例使用 jQuery)

$('#element-id').on('click', handler);

您可以按如下方式定义处理程序

function handler() {
  // AJAX request to the send-email end-point at the server
  // do any other action you'd want to do for this click event
}

【讨论】:

  • "//send an email" ..来自 Javascript?真的吗?
  • @ADyson 我的意思是,编写电子邮件处理程序方法。不要直接发邮件。将编辑它:)
  • 我认为最好明确电子邮件的发送必须从服务器完成,这意味着一个ajax请求。
  • 这样好多了。同样对于任何阅读的人,这里显示的特定语法都需要 jQuery。使用原生 JS 也可以完成同样的事情,但语法不同。
猜你喜欢
  • 2013-11-15
  • 2020-05-15
  • 2012-11-25
  • 1970-01-01
  • 2015-12-07
  • 1970-01-01
  • 2016-02-16
  • 2022-11-03
  • 2020-05-07
相关资源
最近更新 更多