2016-03-17 51 views
0

所以我有這個XHTML文檔,我有這個腳本<head>標籤之間嵌入:最後更新JavadScripting在XHTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<!--Created January 12, 2016--> 
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <!--Date updated, courtesy of --> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
    <script> 
    function makeArray() { 
       for (i = 0; i < makeArray.arguments.length; i++) 
       this[i] = makeArray.arguments[i]; 
      } 

      function getFullYear(d) { 
       var y = d.getYear(); 
       if (y < 1000) { 
       y += 1900 
       }; 
       return y; 
      } 

      var days = new makeArray("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); 
      var months = new makeArray("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); 

      function format_time(t) { 
       var Day = t.getDay(); 
       var Date = t.getDate(); 
       var Month = t.getMonth(); 
       var Year = getFullYear(t); 
       timeString = ""; 
       timeString += days[Day]; 
       timeString += ", "; 
       timeString += months[Month]; 
       timeString += " "; 
       timeString += Date; 
       timeString += ", "; 
       timeString += Year; 
       return timeString; 
       } 

      m = new Date(document.lastModified); 
      d = new Date(); 
      $(function() { 
       $('.timestamp').html(format_time(m)) 
      }); 
    </script> 

</head> 

,更新文檔時最後在頁腳更新日期:

<div id="copyright"> 
    <p id="copyright-invert"> 
     Copyright &#169; 
    <!-- function for year change --> 
     <script type="text/javascript"> 
      now=new Date(); 
      year=now.getFullYear(); 
     </script> 
     <script type="text/javascript"> 
      document.write(year); 
     </script> 
     | All Rights Reserved 
     <br/> 
      UPDATED: <span class="timestamp"></span> 
    </p> 
</div> 
</body> 
</html> 

這裏的問題是,當我把文件通過validator,它與一對夫婦的錯誤和警告出現如下規定: enter image description here

我不確定如何解決此問題,以便文檔可以通過驗證。 。 。

+0

我猜你必須做一個功能的js文件,所有的腳本,並拿到劇本機智html標記這是一個很好的做法,從js中分離html –

+1

您需要將第一個腳本的內容包裝在註釋的CDATA塊中。並看到[這個答案](http://stackoverflow.com/questions/16382434/why-does-cdata-is-commented-out-under-script-tags#16383391)爲解釋原因。 – Alohci

+0

好吧,我看到我需要但我怎麼會寫在代碼中? –

回答

1

就驗證而言,處理此問題的最佳方法是不使用XHTML

  • XHTML是更多的麻煩比它的價值爲+的情況下99%(因爲大多數人嘗試使用XHTML告訴瀏覽器這是HTML,因此必須寫它,所以它與XML和HTML解析器的作品)。
  • Transitional Doctypes旨在幫助人們輕鬆使用CSS,而CSS支持很差。那是在90年代。在很長很長的時間裏,CSS支持一直都很差。
  • 目前的標準是HTML 5.瀏覽器比XHTML 1.0更好地支持它。你幾乎肯定會使用它(而不是它的XHTML序列化)。

如果你真的,真的想使用XHTML然後閱讀:

其中說,套用,最好的辦法,使腳本在XHTML中有效爲將它們放在外部JS文件中。

如果做不到這一點,包裝腳本元素的內部意見和CDATA標記:

<script>//<![CDATA[ 
    ... 
    //]]></script>