Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   не работает createRange (https://javascript.ru/forum/css-html-firefox-mizilla/46426-ne-rabotaet-createrange.html)

SeMiTr 09.04.2014 14:36

не работает 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>

Octane 09.04.2014 14:42

метод createRange есть только у document

SeMiTr 09.04.2014 17:13

Спасибо, теперь всё работает)))


Часовой пояс GMT +3, время: 13:04.