【问题标题】:Checking If the User clicked on Mail Link检查用户是否点击了邮件链接
【发布时间】:2013-10-14 09:04:53
【问题描述】:

我有一个带有电子邮件链接的页面

<a href="mailto:email@address.com?subject=Test Story&amp;body=abc.com
">Email Link</a>

我想检查如果用户单击此链接打开默认电子邮件客户端,但我还想在数据库中更新用户已邮寄。 我知道这一切都发生在客户端,有什么方法可以检查用户是否点击了它? onclick 不存在锚标记。 这方面的任何帮助。

【问题讨论】:

  • 您可以将点击处理程序绑定到电子邮件锚点,并在处理程序中触发带有详细信息的 ajax 请求。这些线上的东西jsfiddle.net/Q73y2
  • Java 或 Flash 只能做到这一点。你所拥有的是一个无辜的锚标签,它点击该 URL 而不对浏览器之外发生的事情负责。
  • @PSL 我在页面中有不止一个这样的 sn-ps,即使我给他们一个不能达到目的的类名
  • @AndrésTorres 我同意,这就是我在这里发布它的原因
  • @user1765876 为什么不呢?您应该能够将自己的电子邮件标签与其他锚标签区分开来。您还可以在数据属性中设置特定数据以及特定于该电子邮件链接并即时检索它们。

标签: javascript html ajax anchor mailto


【解决方案1】:

您需要使用“mailto:”链接监听&lt;a&gt; 标签上的点击事件。假设您使用的是 jQuery,代码如下:

$('a[href^="mailto:"]').on('click', function(e){
  var email = $(this).attr('href').replace('mailto:', '');
  // submit action to server here.
});

更新:确保此代码在 DOM 就绪事件之后运行,如下所示:

jQuery(function($){
  $('a[href^="mailto:"]').on('click', function(e){
    var email = $(this).attr('href').replace('mailto:', '');
    // submit action to server here.
  });
});

【讨论】:

  • 应该可以,这里是jsfiddle.net/YCby2 也许您使用的是旧版本的 jQuery,或者您的代码在某些方面与它冲突?你能检查你的控制台输出或者把你的代码放到网上让我看看吗?
  • 控制台上没有任何内容,它只打开电子邮件客户端,在 jfiddle 中可以正常工作
  • 好的,您是否插入了代码以使其在 DOM 就绪事件之后运行?例如,在这个里面:$(function($){ //code here });
  • 感谢您为我抽出时间,它仍然无法正常工作,我可以在源代码中看到 JS 但我认为它没有被触发
  • 我在控制台中运行了你更新后的代码,它给出了 [#document ​ ​...​​ ​...​正文>​ ​
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-17
  • 1970-01-01
  • 1970-01-01
  • 2012-06-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多