【问题标题】:I don't know what I'm doing wrong [closed]我不知道我做错了什么[关闭]
【发布时间】:2014-02-16 17:06:04
【问题描述】:

当我问这个问题时,我不知道如何编程,但我正在寻找一种方法来混淆电子邮件地址,这样机器人就很难将它们从网站上删除。我试图让 javascript 在页面加载时填写电子邮件地址。

    <script type="text/javascript">
        $(document).ready(function(){
            function emailTrainer(trainersName, userName, domainName){
                var tName = trainersName;
                var uName = userName;
                var dName = domainName;
                var subject = 'Questions&#32;about&#32;training'

                document.write('<a herf="mailto:' + uName + '@' + dName '&#63;Subject=' + subject + '">Email ' + tName + '</a>');
            }
        });
    </script>
    <address>
        <script type="text/javascript">
            emailTrainer('Name', 'email', 'Domain');
        </script>
    </address>

【问题讨论】:

  • 它应该做什么,你看到了什么行为?
  • 你打错了:herf 应该是href
  • 你有什么问题?您需要解释问题以及您尝试过的方法。
  • 您在编写$(document) 时也在使用jQuery。你是否包括它,但特别是,你知道你在做什么吗?
  • Stackoverflow 是一个用疯狂的开箱即用解决方案来解决复杂问题的网站。这不是一个初学者学习和问答网站。在复制粘贴和运行寻求帮助之前,请访问 w3schools 了解您正在学习的功能。

标签: javascript


【解决方案1】:
  1. 您在另一个函数中定义了emailTrainer(没有明显原因:它正在等待 DOM 准备好,但不对 DOM 进行操作),然后尝试在全局范围内访问它(它没有'不存在)。
  2. 您在文档加载后使用document.write。这将清除现有文档。请改用DOM manipulation
  3. 您将href 拼错为herf
  4. 您将javascript 拼错为javacript,但type 属性自HTML 5 以来是可选的(对于JS),应省略以避免出现此类拼写错误。
  5. 您错过了dName'&amp;#63;Subject=' 之间的串联运算符 (+)
  6. 您正在从 jQuery 调用 $,但没有表明您已经加载了该库(并且,正如 1 中所述,您并没有将它用于任何有用的东西)

【讨论】:

  • 如果所有 SO 的答案都是这样的,那将是一个美好的世界:)
【解决方案2】:

看起来您希望脚本呈现一些标记并将其放置在页面上,从而替换脚本标记。不幸的是,这就是现在 JavaScript 的工作方式。我猜你想要的是:

$(function(){
    function emailTrainer(name, userName, domain) {
        // declare your emailTrainer function as before
    };

    var $link = $(emailTrainer('Name','email','Domain');
    $('address').append($link);

});

【讨论】:

  • 函数表达式后面多了一个;
【解决方案3】:
<script type="text/javascript" >
    function emailTrainer(trainersName, userName,  domainName){
        var tName = trainersName;
        var uName = userName;
        var dName = domainName;
        var subject = 'Questions&#32;about&#32;training'

        document.write('<a herf="mailto:' + uName + '@' + dName '&#63;Subject=' + subject + '">Email ' + tName + '</a>');
    }
</script>

这应该可行。

从移动网站编辑,所以请原谅格式

【讨论】:

  • 你改变了什么(请让你的答案是解释,而不是找茬游戏)?那是行不通的,你在那里至少留下了一个错误。 (并且您没有引用的代码段中有错误)。
  • 他似乎明显面临的主要问题是他无法获得对函数的引用,而且你不需要天才就能看到我已经删除了准备好的函数调用。另外,不要宠着他,告诉他他基本上做错了什么,已经指出了,让他调试和学习语言。
猜你喜欢
  • 2021-01-05
  • 1970-01-01
  • 2021-04-13
  • 2012-11-07
  • 2013-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-15
相关资源
最近更新 更多