2009-10-17 31 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