我在满足XHTML Strict的类分配要求时遇到问题。类分配说要使用Java脚本生成表,但是只能在外部javascript文件中使用该数组。尝试满足XHTML Scrict要求时,这导致了一些问题。我打破的“规则”如下:
产生此错误的行是:
<script type="text/javascript">
<!--
for(var i=0; i<5;i++){
document.write('<tr><td class="classes">');
document.write(classArray[i]);
document.write('</td></tr>');
}
-->
</script>
问题是此代码位于“body”标签中。我不确定如何复制此代码以将其放在头部,同时在页面上我想要的位置生成表格。任何帮助将非常感激。我真的对XHTML Strict或Javascript不太了解,这只是为期3周的类(class)的一部分,我的所有经验都来自演讲/阅读。
完整代码,可疑程度接近底部:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Career Goals</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<style type="text/css">
body
{
background-image:url('./images/marbleBG.jpg');
background-repeat:no-repeat;
background-position:right top;
background-size: 100% , 100%;
margin-top:5%;
margin-bottom:5%;
font-family: sarif;
text-align: center;
font-size: 18px;
}
table.main
{
margin-left: auto;
margin-right:auto;
height: auto;
width: 65%;
border: 0px solid black;
}
table.classes
{
margin-left: 15%;
margin-right:auto;
height: 100%;
width: auto;
text-align : left;
border-collapse: collapse;
}
td.classes
{
text-indent : 25px;
border: 1px solid;
padding: .3em;
}
th.classes
{
padding: .3em;
border: 1px solid;
}
table.centered
{
margin-left: 15%;
margin-right: auto;
border: 0px solid black;
}
h1.title
{
text-align: center;
padding-bottom:25px;
}
p.left
{
text-align: left;
font-size: 16px;
text-indent: 25px;
}
li
{
text-align: left;
}
</style>
</head>
<body>
<script type="text/javascript" src="myarray.js" ></script>
<script type="text/javascript" src="mycookie.js" ></script>
<table class="main">
<tr>
<td>
<h1 class="title"> Career Goals </h1>
<p class="left">
My goals when I complete my computer science degree with Arizona State University will include
joining a corporation where I can improve my technical skills and assist in the growth of said company.
I would like to be a part of a team of programmers with common career interests where we can motivate each
other to visibly show improvement as our careers progress.
</p>
<p class="left">
In my study with Arizona State University I have learned many popular programming languages. In my career I plan
on utilizing most, if not all, of the languages I know. The programing languages I know include:
</p>
<table class="centered">
<tr>
<td>
<ul>
<li>Java</li>
<li>C/C++</li>
<li>Scala</li>
<li>Java Scripting</li>
<li>PERL Scripting</li>
<li>Unix Scripting</li>
<li>HTML/XHTML</li>
</ul>
</td>
</tr>
</table>
<p class="left">
With Arizona State Univeristy I did not just learn programming languages, I learned industry practicies. In my career
I expect to utilize msot of these techniques, as well as learn new practicies to improve the quality of software I
assist in creating. The techniques taught by Arizona State University include:
</p>
<table class="centered">
<tr>
<td>
<ul>
<li>Extreme Programming</li>
<li>Paired Programming</li>
<li>Code Reviews</li>
<li>Refacotring Sessions</li>
</ul>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<p class="left"> At Arizona State University I have taken many classes to progress
in my computer science degree. Some of the classes that I have taken that may assist in my career goals are:
</p>
<table class="classes">
<tr>
<th class="classes">
<b>Classes Taken for Computer Science Major</b>
</th>
</tr>
<script type="text/javascript">
<!--
for(var i=0; i<5;i++){
document.write('<tr><td class="classes">');
document.write(classArray[i]);
document.write('</td></tr>');
}
-->
</script>
</table>
</td>
</tr>
<tr>
<td>
<p class="left">
More of my skills and goals can be found on my <a href="resume.html">resume</a>. If you feel my career goals would be a great addition
to your team you can contact me using my <a href="contact.html">contact form</a>.
</p>
</td>
</tr>
</table>
<p>
<a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Strict" height="31" width="88" /></a>
</p>
</body>
</html>
最佳答案
表中不允许脚本元素,除非它们位于数据或标题单元格中。如果要从脚本生成表的一部分,则必须从脚本生成表的所有。
顺便说一句,在XHTML中,注释是注释,因此实际上您没有脚本,只有包含注释的script元素。您可能没有注意到,因为您可能正在告诉浏览器将文档视为HTML(本地文件具有.html文件扩展名,而HTTP上提供的则是text / html内容类型)。 摆脱注释。然后,您会发现脚本中的<
将生成更多错误(因为标记是XHTML中脚本内的标记(与HTML不同)。 Wrap the content with CDATA flags。
一般来说,我不建议将XHTML用于任何新项目。当您假装为HTML时,应该如何处理XHTML和浏览器如何处理它之间的差异使它变得更麻烦,值得这样做。
您似乎也拥有适合列表的数据,而不是适合表的数据(只有一个列是一个大提示),因此我将完全摆脱该表。