Показать сообщение отдельно
  #1 (permalink)  
Старый 09.04.2014, 14:36
Интересующийся
Отправить личное сообщение для SeMiTr Посмотреть профиль Найти все сообщения от SeMiTr
 
Регистрация: 28.11.2013
Сообщений: 12

не работает createRange
Здравствуйте! Скопировал с учебной части этого сайта 2 примера, которые по заверениям авторов должны работать на всех браузерах кроме IE<9. У меня, почему-то, не оба не работают ни в FF ни в GC, т. к. RootCreate во время проверки у меня равен пустой строке.
Подскажите, в чём дело. Код одного из них прилагаю
<html>
  <head>
	<meta charset="utf-8">
  </head>
  <body>
	<div id="ex2">
	  <h2>Соз|даем объект `Range`</h2>
	  <p>От третье|го символа заголовка до десятого символа это абзаца.</p>
	</div>
	 
	<button onclick="alert(domRangeCreate())">
	  Создать Range и вывести его текст
	</button>
	 
	<script>
	function domRangeCreate() {
	  // Найдем корневой контейнер
	  var root = document.getElementById('ex2');
	  // Найдем контейнеры граничных точек (в данном случае тестовые)
	  var start = root.getElementsByTagName('h2')[0].firstChild;
	  var end = root.getElementsByTagName('p')[0].firstChild;
	  if (root.createRange) {
		// Создаем Range
		var rng = root.createRange();
		// Задаем верхнюю граничную точку, передав контейнер и смещение
		rng.setStart( start, 3 );
		// Аналогично для нижней границы
		rng.setEnd( end, 10 );
		// Теперь мы можем вернуть текст, который содержится в полученной области
		return rng.toString();
	  } else {
		return 'Вероятно, у вас IE<9, смотрите реализацию TextRange ниже';
	  }
	}
	</script>
  </body>
 </html>
Ответить с цитированием