Проблема редактирования текста в MS IE8

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Earth
phpBB 1.0.0
Сообщения: 4
Стаж: 15 лет 8 месяцев

Re: Проблема редактирования текста в MS IE8

Сообщение Earth »

Прошёл год, а решения как такого нет :(. Перевод в совместимость это плохо (querySelectorAll и прочее не доступно и т.д.).
  1. Есть решения на CSS и JS: http://www.phpbb.com/community/viewtopi ... &t=1700275
    CSS правда только на Prosilver (но для других стилей тоже самое). Но надо учитывать какие ещё стили стоят.
    JS первый вариант рабочий, но 40 строк кода :( . Второй вариант работает, но портит ширину текстового поля.
  2. Я для себя написал небольшие правки на JS (если кого то CSS не устроит) - тестировал на Prosilver:
    Открываем posting_editor.html и добавляем в самое начало:
    • если есть jquery:

      Код: Выделить всё

      <!--[if IE 8]><script>
      $(function () {
      	$('#message').css({ 'width': '100px', 'min-width': '99%', 'max-width': '99%' });
      });
      </script><![endif]-->
      
    • если нужен чистый JS (2 варианта, лучше первый):
      По готовности страницы:

      Код: Выделить всё

      <!--[if IE 8]><script>
      (function () {
      	window.document.attachEvent('onreadystatechange', function () {
      		var message = window.document.getElementById('message');
      		if (message) {
      			message.style.width = '100px';
      			message.style.maxWidth = '99%';
      			message.style.minWidth = '99%';
      		}
      	});
      })();
      </script><![endif]-->
      По полной загрузке страницы:

      Код: Выделить всё

      <!--[if IE 8]><script>
      (function () {
      	window.attachEvent('onload', function () {
      		var message = window.document.getElementById('message');
      		if (message) {
      			message.style.width = '100px';
      			message.style.maxWidth = '99%';
      			message.style.minWidth = '99%';
      		}
      	});
      })();
      </script><![endif]-->
      
    Собственно это всё. В принципе можно вставить в любую часть страницы или вынести в общий js (но с проверкой на браузер и его версию).
В итоге можно установить в хедере принудительный режим IE9:

Код: Выделить всё

<meta http-equiv="X-UA-Compatible" content="IE=9" />
В IE9 это позволит использовать CSS3 и прочее, в IE8 поставит режим стандартов IE8, в младших версиях без изменений.
Надеюсь это поможет.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Проблема редактирования текста в MS IE8

Сообщение Nekstati »

Хорошо, если ларчик так просто открывается. (Жаль, не на чем проверить: IE8 нет под рукой, а на IE9@IE8 этот баг не проявляется.) Только не совсем понятно, при чём тут яваскрипт. Добавляем в overall_header.html перед </head>:

Код: Выделить всё

<!--[if IE 8]><style type="text/css">
	#message-box textarea {width: 100px; min-width: 99%; max-width: 99%;}
</style><![endif]-->
И заменяем

Код: Выделить всё

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7; IE=EmulateIE9" />
на

Код: Выделить всё

<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Earth
phpBB 1.0.0
Сообщения: 4
Стаж: 15 лет 8 месяцев

Re: Проблема редактирования текста в MS IE8

Сообщение Earth »

Nekstati писал(а):Добавляем в overall_header.html
Проверил - работает. Прыжков при набирании текста нет.
Nekstati писал(а):Только не совсем понятно, при чём тут яваскрипт
Кстати да - стилями изящнее. Это меня не туда занесло пока решал эту проблему :).

Может кто ещё протестирует - и отправить это в баг трекер? А то люди мучаются с этим IE8.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Проблема редактирования текста в MS IE8

Сообщение Nekstati »

Непременно отправить.
Earth
phpBB 1.0.0
Сообщения: 4
Стаж: 15 лет 8 месяцев

Re: Проблема редактирования текста в MS IE8

Сообщение Earth »

Nekstati писал(а):Непременно отправить.
Как там процесс тестирования? Я пока проверил на WinXP и Win7 - вроде работает.
Да и куда отправлять: http://www.phpbb.com/bugs/trackers/ или http://tracker.phpbb.com/browse/PHPBB3 ?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Проблема редактирования текста в MS IE8

Сообщение Nekstati »

Не работает без указания высоты <textarea> (проверяла на Windows XP). У меня рабочие варианты получились такие: либо добавляем перед </head>

Код: Выделить всё

<!--[if IE 8]><style type="text/css">
	#message-box textarea {height: 20em; width: 500px; min-width: 100%;}
</style><![endif]-->
либо добавляем в tweaks.css

Код: Выделить всё

#message-box textarea {
	height: 20em;
	width: 500px;
	min-width: 100%;
}

* html #message-box textarea {
	width: 100%;
}
И в любом случае заменяем

Код: Выделить всё

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7; IE=EmulateIE9" />
на

Код: Выделить всё

<meta http-equiv="X-UA-Compatible" content="IE=edge" />
или просто удаляем эту строку.
Earth
phpBB 1.0.0
Сообщения: 4
Стаж: 15 лет 8 месяцев

Re: Проблема редактирования текста в MS IE8

Сообщение Earth »

Nekstati писал(а):Не работает без указания высоты <textarea>
Есть такое. Не обратил внимания (высоту я прописал в стили ещё давно - странно что нет в базовом варианте).
max-width не нужен оказался?
Уже у двоих результат положительный :D
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Проблема редактирования текста в MS IE8

Сообщение Nekstati »

Да, max-width лишний.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Проблема редактирования текста в MS IE8

Сообщение Nekstati »

Итог темы: в phpBB 3.0.9 проблема решена способом, описанным пользователем Earth.

styles/prosilver/theme/forms.css

Код: Выделить всё

#message-box textarea {
	[...]
	width: 450px;
	height: 270px;
	min-width: 100%;
	max-width: 100%;

Вернуться в «Поддержка phpBB 3.0.х»