2

У меня возникла странная проблема. Текст внутри HTML имеет акцентов, например .:Шрифт DOM отличается от отображаемого на экране

<p>é</p> 

Он корректно отображается на экране (E), но содержимое внутри экземпляра DOM не принимает ударения. Он отображает «?» вместо символа с акцентом.

В моем случае я вставляю javascript-код в Kindle (http://read.amazon.com) с использованием расширения chrome, но не думаю, что это действительно актуально, поскольку я вижу проблему только с помощью хром-консоли.

Упрощенная версия HTML структуры:

<html> 
    <head> 
     ... 
     <meta http-equiv="Content-type" content="text/html;charset=UTF-8"> 
     ... 
    </head> 
    <body> 
     ... 
     <iframe id="KindleReaderIFrame"> 
      <html> 
       <head> 
        ... 
        <meta http-equiv="Content-type" content="text/html;charset=UTF-8"> 
        ... 
       </head> 
       <body> 
        ... 
        <iframe id="column_0_frame_0"> 
         <html> 
          <head> 
           <!-- Do not have the Content-Type meta tag --> 
          </head> 
          <body> 
           <!-- Text with accents that I intend to get through DOM --> 
          </bady> 
         </html> 
        </iframe> 
        ... 
       </body> 
      </html> 
     </iframe> 
     ... 
    </body> 
</html> 

текст Я хочу внутри "column_0_frame_0" фрейма.

+1

Возможный дубликат [iFrames and encodings] (http://stackoverflow.com/questions/4270847/iframes-and-encodings) –

+0

Я протестировал ситуацию, описанную выше, но проблемы кажутся немного разными. В приведенной теме в моем тесте символы в DOM и отображаемые на экране символы имеют одну и ту же кодировку. – Raphael

ответ

0

Проходя через ваш код, вы не закрыли тело тега правильно, смотрите ниже:

<iframe id="column_0_frame_0"> 
    <html> 
     <head> 
     <!-- Do not have the Content-Type meta tag --> 
     </head> 
     <body> 
      <!-- Text with accents that I intend to get through DOM -> 
     </bady> 
    </html> 
</iframe> 

Во-вторых, если вы загружаете свое содержание в плавающем фрейме или через AJAX, его не достаточно, чтобы установить набор символов в метатеге иногда зависит от IDE, которую вы использовали для создания своего кода.

Для проверки:

  1. Открыть тот же код в Notepad ++
  2. Сохранить содержимое с использованием кодировки UTF-8 (по умолчанию ANSI).
  3. Код запуска на локальном сервере без открытия файла в любой другой среде IDE.

Теперь вы сможете сделать акценты правильно в DOM, а также на экране.

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