我有一个简单的小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严格:o)
答案 0 :(得分:3)
您需要将该元素包装在CDATA块中,如规范中有关HTML和XHTML之间差异的部分所述,特别是script and style elements部分。
但是,您几乎肯定会使用text / html Content-Type为您的XHTML提供服务,因此您需要跳过使其像HTML一样足以继续跨浏览器工作的环节。在这种情况下,by commenting out the CDATA markers。
<script type="text/javascript">
//<![CDATA[
mixupE='mywebsite.com'
mixupE=('myname' + '<span>@</span>' + mixupE)
document.write(mixupE)
//]]>
</script>
答案 1 :(得分:1)
使用间接方式表示<
:
<script type="text/javascript">
var lt = String.fromCharCode(60);
mixupE='mywebsite.com'
mixupE=('myname' + lt + 'span>@' + lt + '/span>' + mixupE)
document.write(mixupE)
</script>
答案 2 :(得分:0)
这是我和家伙们在一起的地方。我有以下两种可能性,它们似乎都有效,并且都验证为严格的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>
为什么我应该选择其中一个而不是另一个?
答案 3 :(得分:0)
使用CDATA和转义的组合,如下所示:
<script type="text/javascript">
//<![CDATA[
mixupE="mywebsite.com";
mixupE=("myname" + "<span>@<\/span>" + mixupE);
document.write(mixupE);
//]]>
</script>
答案 4 :(得分: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>