【问题标题】:hide email with jquery [duplicate]用jquery隐藏电子邮件[重复]
【发布时间】:2014-03-13 19:26:41
【问题描述】:

我使用以下 jQuery 代码在我的网站上隐藏我的电子邮件 (name.family@gmail.com):

$(document).ready(function() {
  var n = "name";
  var f = "family";
  var d = ".";
  var t = "gmail";
  var l = "com";
  var r = 'mailto:' + n + d + f + '@' + t + d + l;
  $('.hide-email').attr('href',r).html(r);
});

这真的会阻止垃圾邮件程序收集电子邮件地址吗?他们还请求我的网页,加载它,然后分析它的电子邮件地址,对吗?网页加载完成后,jQuery 会生成真实的电子邮件地址。真正保护我的电子邮件的唯一方法是使用验证码,这不是那么用户友好......

我错了吗?

更新:对我来说主要问题是 - “使用 JS 或 jQuery 隐藏电子邮件”方法是否有效?

【问题讨论】:

  • 避免垃圾邮件机器人接收您的电子邮件似乎很多。总是有垃圾邮件文件夹
  • 是的,确实如此 - SO 中有一个很好的问题,让我找到它。
  • 这取决于垃圾邮件机器人是否可以等待 js 执行。使用无头浏览器,您可以获取地址。也许您可以在图像中“隐藏”您的电子邮件地址?
  • 人们仍然有垃圾邮件的问题吗?我认为贝叶斯垃圾邮件分类为每个人都解决了这个问题?

标签: javascript jquery html


【解决方案1】:

“使用 JS 或 jQuery 隐藏电子邮件”方法是否有效?

是的,它确实(通常)。虽然理论上垃圾邮件机器人可以像浏览器一样评估 Javascript,但实际上它们通常不会这样做。大多数机器人甚至不解析字符实体引用(&...; 东西),这甚至不是 JS,而是纯 HTML。这是因为收集用于发送垃圾邮件的电子邮件地址依赖于质量,而不是质量。他们让它变得又快又脏,只会寻找@ 字符。他们很可能会忽略任何 Javascript。

当然,缺点是普通用户必须启用 Javascript 才能看到地址。

【讨论】:

    【解决方案2】:
    function fixEmail ($) {
        var $$ = 0;
        return $.replace(/.../g, function ($) {
            return String.fromCharCode ((parseInt($, 36) / 15 + 5) / (++$$))
        });
    }
    function encryptEmail (mail) {
        var pos = 0;
        return mail.replace(/./g, function (a) {
            return ((a.charCodeAt(0) * (++pos) - 5) * 15).toString(36)
        });
    }
    
    $(function () {
        $('.hide-email').attr('href', fixEmail('17c26r3l64xx6nl7nf4n3a19ago7clcsuglxejchlrjdxjxxjtc9ixlpopmxqfo')).html('Email me');
    });
    

    也许是这样的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 2012-05-20
      • 1970-01-01
      • 2020-08-18
      • 2016-01-07
      • 2016-01-21
      相关资源
      最近更新 更多