0

私は DotNetNuke で作業していますが、これは厳密には DNN の問題ではないようです。

私は自分のモジュールで FormatEmail と呼ばれる DNN 提供のメソッドを使用しています。

<script language="text/javascript">

<!--
  document.write(String.fromCharCode(60,97,32,104,114,101,102,61,34,109,97,105,108,116,111,58,119,101,98,109,105,110,64,97,116,101,110,118,101,108,100,116,46,111,114,103,34,62,119,101,98,109,105,110,64,97,116,101,110,118,101,108,100,116,46,111,114,103,60,47,97,62))
// -->

</script>

コードベースへの他の追加の中でjQueryが含まれていることがわかっているDNN 5をインストールしました。jQuery は document.write コードの動作を停止しますか?

DNN はボットからテキストをクロークするために別の方法を使用する必要がありますか?

電子メール アドレスをクローキングする方法としてこの方法を使用するのをやめるべきですか?

更新: このページは xhtml を使用していません。

4

3 に答える 3

5

これが起こったのかどうかはわかりませんがdocument.writedocument.writelnサイトがブラウザに厳密な XHTML であると伝えている場合は機能しません。これを実現するには、厳密な DOCTYPE を使用し、Content-Typeヘッダーを(多くのサーバーでのデフォルト)application/xml+xhtmlではなくに設定する必要があると思います。text/htmlこれは、この方法で DOM を操作すると、DOM が壊れる可能性があるためです。たとえば、検証済みの Web ページの途中に次のコードを挿入したとします。

<script type="text/javascript">
<!--
    document.write("</body>");
// -->
</script>

ドキュメントは検証され、XHTML に準拠しますが、ほとんどのブラウザーでは機能しません。

もう 1 つの方法は、電子メール アドレスを挿入する DOM ノードを作成し、ページが読み込まれたときに挿入することです。例えば:

<p>My email address is <span id="email"></span>.</p>
<script type="text/javascript">
<!--
    document.body.onload = function() {
        document.getElementById("email").textContent = String.fromCharCode(60,97,32,104,114,101,102,61,34,109,97,105,108,116,111,58,119,101,98,109,105,110,64,97,116,101,110,118,101,108,100,116,46,111,114,103,34,62,119,101,98,109,105,110,64,97,116,101,110,118,101,108,100,116,46,111,114,103,60,47,97,62);
    };
// -->
</script>

または、jQuery がセットアップされている場合:

<p>My email address is <span id="email"></span>.</p>
<script type="text/javascript">
<!--
    $( function() {
        $("#email").text(String.fromCharCode(60,97,32,104,114,101,102,61,34,109,97,105,108,116,111,58,119,101,98,109,105,110,64,97,116,101,110,118,101,108,100,116,46,111,114,103,34,62,119,101,98,109,105,110,64,97,116,101,110,118,101,108,100,116,46,111,114,103,60,47,97,62));
    } );
// -->
</script>
于 2009-05-16T00:47:40.250 に答える
2

DNNバグトラッカーで具体的な答えを見つけたと思います:

出力は次のようになります。

<script type="text/javascript">

//<![CDATA[
 document.write(String.fromCharCode(60,97,32,104,114,101,102,61,34,109,97,105,108,116,111,58,84,101,115,116,64,106,101,102,102,109,97,114,116,105,110,46,99,111,109,34,62,84,101,115,116,64,106,101,102,102,109,97,114,116,105,110,46,99,111,109,60,47,97,62))
//]]>

</script>

これにより、私のサイト (XHTML を実行していないサイト) の問題が修正されたようです。

バグはここにあります。

于 2009-05-16T01:29:26.517 に答える
0

ジェフ、

あなたは正しい解決策を見つけましたが、正直なところ、これの利点についてはよくわかりません. はい、電子メールはスクレイピングされる可能性がありますが、少なくとも私の意見では、このプロセスはまったくやり過ぎです。電子メール リンクを表示するためだけに、javascript を実行する必要はありません。

それは、手元にある非常に具体的な問題に対する私の $0.02 です。

于 2009-05-16T01:46:55.303 に答える