2009-10-17 56 views
1

首先,我不是要求任何人做我的功课。这一点是写一个简单的网页,以熟悉JavaScript。它从名为'cards'的文件夹生成并显示随机卡片。我完成了那部分。然而,当我把它提交给老师时,他给我发回了这个截图,主题是“任何想法?”。JavaScript不在浏览器中生成,只是将代码打印到屏幕

http://i38.tinypic.com/2wr3e2p.jpg

我有几台机器上测试这个网页,并在每一个浏览器。我不知道为什么当他运行它时,它会将代码打印到页面上。有什么想法吗? (我假设他会启用JavaScript,特别是因为我班的每个人都在提交此程序)。

编辑:这里的代码,抱歉,但我包括一切只为了清除任何问题

<!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> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Aaron's Gamble Page!</title> 

<style type="text/css"> 
* { padding: 0; margin: 0; } 

body 
{ 
font-family: Arial, Helvetica, sans-serif; 
font-size: 13px; 
background: #48454C; 
} 
#wrapper 
{ 
margin: 0 auto; 
width: 365px; 
} 
#header 
{ 
color: #333; 
width: 365px; 
padding: 10px; 
margin: 10px 0px 0px 0px; 
background: #A29EA2; 
} 
#centercolumn 
{ 
color: #333; 
padding: 10px; 
width: 365px; 
background: #DFE0DB; 
} 
#footer 
{ 
width: 365px; 
clear: both; 
color: #333; 
background: #A29EA2; 
padding: 10px; 
} 
</style> 

<script type="text/javascript" charset="utf-8"> 
// this page created by Aaron Albin 
// creation date: October 17, 2009 

var score = 0; 

function generateCards() 
{ 
    var i, randType, randSuite; 
    var type = new Array("2", "3","4","5","6","7","8","9","t","j","q","k","a"); 
    var suite = new Array("c","d","s", "h"); 
    var cards = new Array(5); 
    for (i = 0; i < cards.length; i++) 
    { 
     cards[i] = setRandomCard(type, suite, cards); 
     document.write('<img src = "'+cards[i]+'">'); 
    } 
} 

function setRandomCard(type, suite, cards) 
{ 
    var randType, randSuite; 
    var filePath = "file://C:/cards/"; 
    var fileExt = ".gif"; 

    do 
    { 
     randType = Math.floor(Math.random() * type.length); 
     randSuite = Math.floor(Math.random() * suite.length); 
    } 
    while(checkDuplicate(randType, randSuite, filePath, fileExt, type, suite, cards)); 

    addScore(type, randType); 
    return filePath + type[randType] + suite[randSuite] + fileExt; 
} 

function checkDuplicate(randType, randSuite, filePath, fileExt, type, suite, cards) 
{ 
    var j; 
    for (j = 0; j < cards.length; j++) 
    { 
     if (cards[j] == filePath + type[randType] + suite[randSuite] + fileExt) 
     { 
      return true; 
     } 
    } 
    return false; 
} 

function addScore(type, randType) 
{ 
    switch(type[randType]) 
    { 
     case "2": 
      score += 2; 
      break; 
     case "3": 
      score += 3; 
      break; 
     case "4": 
      score += 4; 
      break; 
     case "5": 
      score += 5; 
      break; 
     case "6": 
      score += 6; 
      break; 
     case "7": 
      score += 7; 
      break; 
     case "8": 
      score += 8; 
      break; 
     case "9": 
      score += 9; 
      break; 
     case "t": 
      score += 10; 
      break; 
     case "j": 
      score += 11; 
      break; 
     case "q": 
      score += 12; 
      break; 
     case "k": 
      score += 13; 
      break; 
     case "a": 
      score += 1; 
      break; 
     default: 
      score += 0; 
    } 
} 
</script> 

</head> 

<body> 
    <div id="wrapper"> 
     <div id="header"></div> 
      <div id="centercolumn"> 
       <h2>Gamble!</h2>  
       <br /> 
       <p>Welcome to my gambling page. You have drawn</p><br /> 
       <script type="text/javascript" charset="utf-8">generateCards();</script><br /><br /> 
       <p>The value of this hand is <script type="text/javascript" charset="utf-8">document.write(score);</script>.</p> 
       <br /> 
      </div> 
     <div id="footer"></div> 
    </div> 
</body> 
</html> 
+3

Blimey,告诉你的老师关闭他的一些工具栏! – Skilldrick 2009-10-17 21:33:06

+0

你可以和你的老师一起检查他正在检查你的家庭作业的浏览器吗? – Rachel 2009-10-17 21:40:27

+0

你可以发布一些你的代码,包括JS周围的标签吗? – 2009-10-17 21:40:47

回答

3

你确定你的代码的权利标签内上市?

<script type="text/javascript" charset="utf-8"> 
// your code goes here 
</script> 

它是唯一的原因,我能想象,

+0

是的,在页面的标题部分,我将代码放在这些标签之间。然后在我的身体使用这个叫:

欢迎来到我的赌博页面。您已绘制




这只手的价值是

Aaron 2009-10-17 21:43:51

+0

我的意思是“ut-f8”,在之前的帖子 – Aaron 2009-10-17 21:44:42

+0

刚试过safari和Firefox,它的工作原理是 – wezzy 2009-10-19 05:41:20

2

你它声明为XHTML。在XHTML中,每个标签的内容都被解析。因此,您的JavaScript中的<和>符号可以分解页面。 (他们可以,这是我能看到的唯一错误的东西。)把你的javascript放入CDATA标签。 (请参阅http://www.w3schools.com/xmL/xml_cdata.asp)不幸的是,这并未被每个浏览器正确解析,因此您必须(javascript-)将其注释掉才能使其正常工作。

<script type="text/javascript"> 
/* <![CDATA[ */ 
    // code goes here 
/* ]]> */ 
</script> 

编辑:尝试http://validator.w3.org/,你会看到你的标记是无效的,问题出在哪里。添加CDATA标签可解决问题,或者至少使您的代码有效。

+0

好吧,我会尝试 – Aaron 2009-10-17 22:05:17

+0

当我这样做时,页面似乎不会读取CSS或JavaScript。 .. – Aaron 2009-10-17 22:08:23

+0

好的,会做的。感谢您的意见。 – Aaron 2009-10-17 22:10:50

0

当你从IE浏览器中的磁盘加载本地页面时,会弹出一个警告栏,提示“活动内容已被禁用,点击此处启用活动内容。 (或类似的规定)。与老师检查他是否看到了栏杆,没有看到它意味着JS以某种方式被禁用,无论是在浏览器中还是通过他本地机器上的某种安全/防病毒软件。如果他确实看到它,请确保他点击以启用活动内容:)

从屏幕截图中很难看出是否有某种错误,因为他巧妙地移动了出现错误图标的窗口部分在屏幕上的状态栏中,但我可以看到他已经安装了Firefox,所以请他看看你的页面。

+0

是的,这很可能。我希望这将是我可以从我的最终解决方案...我真的不想给他发一封电子邮件说:“请确保你有JS启用”xD – Aaron 2009-10-17 22:52:32

+0

你可以尝试上传相同的页面到您的网站和请他在那里检查它? – robertc 2009-10-17 23:02:17

+0

谢谢,我只是这么做的。我会看他说什么... – Aaron 2009-10-18 03:26:38