2013-10-20 8 views
0

Браузер говорит, что в моем javascript есть ошибка в моей функции в моем xhtml. Если я удалю эту функцию, ошибка исчезнет. Для меня этот кусок кода выглядит совершенным в синтаксисе:Ошибка определения атрибута атрибута

function toAscii(text) { 
     for (var i=0; i<text.length; i++) { 
      var charCode = text.charCodeAt(i); 
      var ascii = charCode.toString(2); 
      console.log(ascii); 
     } 
    }  

Chrome ошибка:

This page contains the following errors: 

error on line 19 at column 31: error parsing attribute name 
Below is a rendering of the page up to the first error. 

Firefox ошибка:

Erro no processamento de XML: formatação incorreta 
Posição: file:///C:/Users/Carlos/Desktop/ascii%20converter.xhtml 
Número da linha 19, coluna 33: 
         for (var i=0; i<text.length; i++) { 
---------------------------------------------------^ 

Это весь XHTML:

<?xml version="1.0" encoding="UTF-8"?> 
<!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>ASCII Converter</title> 
    <meta charset="UTF-8"/> 

    <script type="text/javascript"> 
     function converter() { 
      var text = document.getElementById('texto').value; 
      toAscii(text); 
     } 

     function toAscii(text) { 
      for (var i=0; i<text.length; i++) { 
       var charCode = text.charCodeAt(i); 
       var ascii = charCode.toString(2); 
       console.log(ascii); 
      } 
     }  
    </script> 
</head> 

<body> 
    Texto (Entrada):<br/> 
    <input id="texto" type="text"/><br/> 
    ASCII (Saída):<br/> 
    <input id="ascii" type="text"/><br/> 
    <input type="button" id="botao" value="Converter" onclick="converter()"/><br/> 
</body> 

</html> 
+4

Разве это не ошибка в вашем XHTML? – bfavaretto

+0

Может быть. Но если я удалю эту функцию, ошибка исчезнет. – ceklock

+1

Вы пытались обернуть js в узел cdata? Я думаю, что XML требует этого, но я не уверен. Вам действительно нужен XHTML? – bfavaretto

ответ

3

Поскольку вы используете XHTML и у вас есть в вашем коде есть < вам придется вложить свой код в CDATA блоке

<script type="text/javascript"><![CDATA[ 
    function converter() { 
     var text = document.getElementById('texto').value; 
     toAscii(text); 
    } 

    function toAscii(text) { 
     for (var i=0; i<text.length; i++) { 
      var charCode = text.charCodeAt(i); 
      var ascii = charCode.toString(2); 
      console.log(ascii); 
     } 
    }  
]]></script> 
+0

Спасибо. Каждый день что-то новое, чтобы учиться. – ceklock

+0

Спасибо. Для нового знания. –

3

XHTML, строго говоря, не позволяет Javascript застрять в заголовок, как можно было бы с HTML. Как упоминалось, это должно быть завернуто в раздел CDATA. Как примечание, код, который вы опубликовали, работает в моем браузере, но, вероятно, он снисходит. Проверьте эту ссылку для получения дополнительной информации о XHTML и встроенного CSS/JavaScript:

https://developer.mozilla.org/en-US/docs/Properly_Using_CSS_and_JavaScript_in_XHTML_Documents

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