2016-03-17 1 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

Я думаю, вы должны сделать функцию, расслоения плотного файл со всеми сценариями и получить сценарий остроумие HTML тега <скрипта Src = "js"> Это хорошая практика, отдельный html из js –

+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> 
Смежные вопросы