1

ビューの本体(正常に機能していた場所)でJS関数を抽出し、メソッドを呼び出すことができるオブジェクトとして外部jsファイルに配置しようとしています。

これは、Jottings JS email obfuscatorを使用するためのものです。現在、ハードコーディングされたリンク タグを出力しています。

私の見解:

<script type="text/javascript" src="/js/email-obfuscator.js">email.encrypt();</script>

私のJSファイル:

var email = function()
{ 
    this.encrypt = function()
    {
        document.write('<a href="mailto:test@example.com">Support</a>');
    }
};

JS エラーは発生しませんが、出力も得られません。これは、独自の外部 JS オブジェクトを作成する最初の試みです。どこが間違っているのでしょうか?

4

1 に答える 1

2

encryptメソッドはクラスのパブリック メソッドです。これemailを使用するには、電子メールのインスタンスを作成する必要があります。

var myEmail = new email();
myEmail.encrypt();

現在メソッドを呼び出している方法に固執したい場合はencrypt、それから静的メソッドを作成する必要があります。

var email = function() {
  // do something
}

email.encrypt = function() {
  document.write('<a href="mailto:test@example.com">ELF Support</a>');
}

しかし、何が最善かは、現在の使用状況によって異なります。複数の電子メール インスタンスが必要な場合や、異なるリンクを暗号化する場合、または静的なままにできる場合は、自分で検討する必要があります。

更新: 重要な部分をほとんど忘れていました: js ファイルの読み込みを実際の使用法から分離する必要があります:

<script type="text/javascript" src="js/email-obfuscator.js"></script>
<script type="text/javascript">
  var myEmail = new email(); 
  myEmail.encrypt();
</script>
于 2013-09-07T13:38:01.797 に答える