Chrome и IE8 против других - PullRequest
       26

Chrome и IE8 против других

3 голосов
/ 08 июня 2011

Я нахожусь в процессе создания веб-страницы, на которой я хочу заменить элемент <span> новым элементом <span>.Исходный элемент <span> (например):

  <span class="green_link">;Abbreviation;The definition</span>

Форма предоставленной строки: <separator><string><separator><string>.Разделитель предназначен для обеспечения того, чтобы любые специальные символы в первой или второй строке не вызывали затруднений при синтаксическом анализе.

Функция JavaScript вызывается обработчиком события onload для элемента <body>.Он обнаруживает все <span> с классом "green_link".Если такого <span> не существует, функция завершается.В противном случае для каждого такого <span> функция создает новый элемент <span>:

  <span class='revised_green_link'>
    <span class='abbreviation_alone'>
      Abbreviation
    </span>
    <span class='abbreviation_definition'>
      <a id='greenlink_1'></a>
      <a href='#greenlink_1' 
         style='text-decoration:none; 
                font-weight:bold;'>
        <span class='abbreviation'>
          Abbreviation
        </span>
        <span class='definition'>
          The definition
        </span>
      </a>
    </span>
  </span>

Затем функция заменяет «green_link» <span> на вновь созданный «updated_green_link» <span>.

Браузеры были протестированы с использованием тестовой страницы и реальной страницы .Firefox 3.6.12, Opera 11.11 и Safari 5.0.2 отображали то, что ожидалось для обеих страниц.Chrome 12.0.742 отображает тестовую страницу, как и ожидалось, но не отображает фактическую страницу, как ожидалось.IE 8 не может отобразить любую страницу, как ожидалось.

Мне интересно, что все браузеры отображают веб-страницу, как и ожидалось, когда они направляются на нее в localhost:port после того, как Visual Studio 2008 отобразил страницу, используя «Просмотр в браузере» (т. Е. http://localhost:1291/BIODAB.html).

Оба HTML-документа были успешно проверены как XHTML 1.0 Strict сервисом проверки разметки W3C. Весь CSS (как тестовый, так и фактический) был успешно проверен на уровне CSS 2.1 сервисом валидации CSS W3C. Все JavaScript,за исключением jQuery JavaScript Library v1.4, была пропущена через JSLint без ошибок.

Я понятия не имею, что является причиной такого разнообразного поведения, и буду признателен за некоторые мысли.

Ответы [ 2 ]

3 голосов
/ 08 июня 2011

Вы можете создавать HTML-теги с помощью javascript, и это кросс-браузер:

var newSpan = document.createElement('SPAN');
newSpan.id = 'newSpanId';

, а затем добавить его в нужный контейнер (div, a и т. Д.)

parentContainer.appendChild(newSpan);

Чтобы удалить элемент:

parentContainer.removeChild(document.getElementById('elementId'));
0 голосов
/ 09 июня 2011

В IE8 сбой состоит из двух частей.

Первая состоит в том, что заголовки HTTP содержат следующую строку:

 x-ua-compatible: IE=EmulateIE7

, которая переводит браузер в режим IE7.

Вторая часть состоит в том, что GreenLinkTest.js содержит

getAttribute("class") 

, который не работает в IE7.См. getAttribute не может вернуть класс в IE7? для получения более подробной информации.

Я не вижу проблемы с Chrome.

...