0

「名前」、「ドメイン」、および「TLD」をパラメーターとして受け取るjavascriptメソッド「saveMailAddress」を使用して、Webサイトの電子メールアドレスを隠したいと思います。その後、このメソッドはノード「a」を DOM ツリーに追加する必要があります。

しかし、どうすればオブジェクトを追加する位置を見つけることができますか?

HTML では (PHP スクリプトによって生成された) 次のようになります。

<p>
    The E-Mail of user XXX is:
    <script type="text/javascript">
    saveMailAdresses("superman", "comic", "com");
    </script>.
</p>

JavaScript 部分では、a-Elemnt を生成する必要があります。

function saveMailAdresses(name, domain, tld) {
    var link = document.createElement("a");
    link.appendChild(
        document.createTextNode("linktext");
    );
    ...
}

しかし、関数が呼び出される親要素に新しい要素を配置するにはどうすればよいですか?

4

3 に答える 3

1

多分

<p id='mailadress'>
    <script type="text/javascript">
        document.write(saveMailAdresses("name", "domain", "tld");
    </script>
</p>


function saveMailAdresses(name, domain, tld) {
        return "<a href=''>test</a>";
}
于 2012-04-10T10:00:09.323 に答える
0

挿入された A タグには、href に実際のメール アドレスが含まれていますか? その場合、最新のブラウザーのデバッグ ツールを使用するか、リンクをクリックしてメール クライアントを開いて [宛先] フィールドにアドレスを入力するだけで、メール アドレスを取得できます。

それでもやりたい場合は、追加する各アドレスの要素と上記の 3 つの変数を含むオブジェクトを受け取る配列をページの先頭に作成し、各アドレスの配列にオブジェクトを追加してから、ページの最後で配列をループし、各オブジェクトで関数を呼び出します (追加の要素引数を指定したメソッド シグネチャを使用)。

本当にメールアドレスを保護したい場合は、ユーザーが入力してサーバーに返信するフォームを作成し、フォームの値に基づいてサーバーが正しい人にメールを送信するようにすることができます (つまり、どの部門のドロップダウン)等)。このようにして、クライアントは電子メール アドレスを決して見ることはありません。

于 2012-04-10T10:32:26.517 に答える
0

HTML5data-属性を使用できます。この例では、簡単にするために jQuery を使用していますが、必要に応じて純粋な DOM で記述できます。

<script>
  $(function() {
    $(".email").each(function (){
      var $this = $(this),
          address = $this.data("username") + "@" + $this.data("domain") + "." + $this.data("tld"),
          $link = $("<a>").attr("href", "mailto:" + address).html("link text");

      $this.append($link);
    });
  });​
</script>

<p>
  My e-mail address:
  <span class="email" data-username="someone" data-domain="example" data-tld="com"></span>
<p>

この jsFiddle は実用的な例です。

于 2012-04-10T11:39:34.923 に答える