0

メールアドレスを少し保護するために、この簡単な小さな JavaScript スニペットがあります。

<p>Email:<br />
<script type="text/javascript">
    mixupE='mywebsite.com'
    mixupE=('myname' + '<span>@</span>' + mixupE)
    document.write(mixupE)
</script>
</p>

問題は、xhtml strict を検証しない唯一のコード セクションであるということです。span @ /span の部分が関係しています。メールアドレスの残りの部分とは異なる @ 記号のスタイルを設定できるように、スパンを含めただけです。

誰でもこれを行うためのより良い方法がありますか?

理想的には、すべてを検証したいと思います:o)

現時点ではこれを行うだけで解決しました:

<p>Email:<br />
        <script type="text/javascript">
            mixupA='name'
            mixupA=('my' + mixupA)
            document.write(mixupA)
        </script><span>@</span><script type="text/javascript">
            mixupB='site.com'
            mixupB=('myweb' + mixupB)
            document.write(mixupB)
        </script>
</p>

おそらく最善の方法ではありませんが、うまくいくようで、私のページは xhtml strict として検証されるようになりました:o)

4

5 に答える 5

3

HTML と XHTML の違いに関する仕様のセクション、特にスクリプトとスタイル要素のセクションで説明されているように、要素を CDATA ブロックでラップする必要があります。

ただし、ほとんどの場合、XHTML を text/html Content-Type で提供しているため、クロスブラウザーで動作し続けるのに十分な HTML のようにするためのフープをジャンプする必要があります。この場合、CDATA マーカーをコメントアウトします。

<script type="text/javascript">
    //<![CDATA[
    mixupE='mywebsite.com'
    mixupE=('myname' + '<span>@</span>' + mixupE)
    document.write(mixupE)
    //]]>
</script>
于 2011-01-31T07:10:00.800 に答える
1

を表す間接的な方法を使用します<

<script type="text/javascript">
  var lt = String.fromCharCode(60);
  mixupE='mywebsite.com'
  mixupE=('myname' + lt + 'span>@' + lt + '/span>' + mixupE)
  document.write(mixupE)
</script>
于 2011-01-31T04:26:09.663 に答える
0

次のように、CDATAとエスケープの組み合わせを使用します。

<script type="text/javascript">
//<![CDATA[
mixupE="mywebsite.com";
mixupE=("myname" + "<span>@<\/span>" + mixupE);
document.write(mixupE);
//]]>
</script>
于 2011-02-21T22:59:30.367 に答える
0

これが私が物事の人たちと一緒にいるところです。私には次の2つの可能性があり、どちらも機能しているように見え、どちらも厳密なxhtmlとして検証されます。

<script type="text/javascript">
   <!--
   var lt = String.fromCharCode(60);
   mixupE='mywebsite.com'
   mixupE=('myname' + lt + 'span>@' + lt + '/span>' + mixupE)
   document.write(mixupE)
   //-->
</script>

また

<script type="text/javascript">
   //<![CDATA[
   mixupE='mywebsite.com'
   mixupE=('myname' + '<span>@</span>' + mixupE)
   document.write(mixupE)
   //]]>
</script>

私がこれらのうちの1つを他のものよりも優先する必要がある理由は何ですか?

于 2011-02-01T04:30:47.597 に答える
0

最も簡単な答えは、文字列を分割して、それがエンティティであるとは思わないようにすることです。これは完全に有効で、元のものとほぼ同じです:

<p>Email:<br />
<script type="text/javascript">
    mixupE='mywebsite.com'
    mixupE=('myname<' + 'span>@<' + '/span>' + mixupE)
    document.write(mixupE)
</script>
</p>

山かっこを難読化する必要はありません。

varただし、とを忘れないでください;。簡略化すると次のとおりです。

<p>Email:<br />
<script type="text/javascript">
    var mixupE='mywebsite.com';
    document.write('myname<' + 'span>@<' + '/span>' + mixupE);
</script>
</p>
于 2014-02-12T22:27:30.423 に答える