2014-12-06 3 views
0

Мне требуется простое использование функций confirm() и prompt() с использованием XHTML 1.0 Transitional в рамках моей задачи назначения. весь код должен быть проверен.document.write XHTML 1.0 Transitional validation error

При попытке проверить код я получаю следующее сообщение об ошибке:

линия 12, колонка 24: тип документа не допускает элемент «р» здесь

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title>java script demonstration</title> 
    </head> 
    <body> 
     <script type="text/javascript"> 
        var response=confirm("This box was created using Javascript - Click on OK to continue") 
      if (response) 
       {document.write("<p>You have just clicked on OK</p>")} 
      else 
       {document.write("You have just clicked on Cancel")}  
        var reply=prompt("Please enter your Name") 
      document.write("your name is " + reply +"") 
     </script> 
    </body> 
</html> 

Можно вобрать в p в код, все еще проходящий валидатор?

+0

'document.write' даже не должен работать в документе XHTML: https://developer.mozilla.org/en-US/docs/Web/API/document.write –

+0

Будет ли он работать под XHTML 1.0 Transitional? Извините, я должен был быть более конкретным. – xianate

ответ

1

Поскольку вы используете XHTML, вам необходимо обернуть JavaScript в CDATA:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title>java script demonstration</title> 
    </head> 
    <body> 
     <script type="text/javascript"> 
      //<![CDATA[ 
      var response=confirm("This box was created using Javascript - Click on OK to continue") 
      if (response) 
       {document.write("<p>You have just clicked on OK</p>")} 
      else 
       {document.write("You have just clicked on Cancel")}  
        var reply=prompt("Please enter your Name") 
      document.write("your name is " + reply +"") 
      //]]> 
     </script> 
    </body> 
</html> 

Это просто способ сказать компилятору, что содержится внутри тегов CDATA это данные, не разметки. Это необходимо, если вы планируете делать какие-либо встроенные JS.

Смежные вопросы