Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   переход по продложениям (https://javascript.ru/forum/css-html-internet-explorer/9160-perekhod-po-prodlozheniyam.html)

awas 02.05.2010 09:06

переход по продложениям
 
Нужно организовать переход по продложениям, но так чтобы перенос строки воспринимался тоже как конец предложения. Как можно подправить мой скрипт?


<p>Строчка с точкой.
<p>Строчка с точкой.
<p>Строчка с точкой.
<p>Строчка с точкой.
<p>Строчка без точки
<p><p>E=mV^2/2
<p>Строчка без точки
<p>Строчка с точкой.
<p>Строчка с точкой.


<p><button onclick="find()">Переход</button>

<script>
function find(){
var tr=document.selection.createRange();
tr.moveStart("sentence")
tr.expand("sentence");
tr.select();}
</script>

Octane 02.05.2010 15:03

Если у вас каждая строка в отдельном теге, то используйте tr.moveToElementText(ссылка_на_тег)

awas 08.05.2010 15:32

Идея интересная. Нельзя ли подробнее рассказать как ею воспользоватся, например для тега <p>
Что подставить в "ссылка_на_тег"

exec 08.05.2010 16:33

awas, document.getElementsByTagName

awas 09.05.2010 08:10

Не могу разобраться.

<script>
function find(){
tr.moveToElementText(document.getElementsByTagName ("p")[2])
}
</script>

даёт ошибку

Octane 09.05.2010 12:47

<ul>
	<li>First</li>
	<li>Second</li>
	<li>Third</li>
	<li>Fourth</li>
	<li>Fifth</li>
</ul>
<script type="text/javascript">
function selectElementText(element) {
	var range;
	if ("selection" in document) {
		range = document.selection.createRange();
		range.moveToElementText(element);
		range.select();
	} else {
		range = document.createRange();
		range.selectNodeContents(element);
		var sel = getSelection();
		sel.removeAllRanges();
		sel.addRange(range);
	}	
}
window.onload = document.onmouseup = function () {
	selectElementText(document.getElementsByTagName("li")[2]);
};
</script>

awa 15.05.2010 21:29

Не совсемпонятно, как получить такое:
 
<ul>
	    <li>First</li>
	    <li>Second</li>
	    <li>Third</li>
	    <li>Fourth</li>
	    <li>Fifth</li>
	</ul>
	<script type="text/javascript">
	function selectElementText(element) {
	    var range;
	    if ("selection" in document) {
	        range = document.selection.createRange();
	        range.moveToElementText(element);
	        range.select();
	    } else {
	        range = document.createRange();
	        range.selectNodeContents(element);
	        var sel = getSelection();
	        sel.removeAllRanges();
	        sel.addRange(range);
	    }   
	}

	</script>


<input type="button" value="0" onClick='selectElementText(document.getElementsByTagName("li")[0])'>

<input type="button" value="1" onClick='selectElementText(document.getElementsByTagName("li")[1])'>

<input type="button" value="2" onClick='selectElementText(document.getElementsByTagName("li")[2])'>

Octane 16.05.2010 00:04

Что получить?

awa 16.05.2010 12:25

Как в моём первом сообщении, получить переход с одного на другое, то есть нажимая на одну кнопку получать переходы по тегам. Это я и сам смогу сделать, если пойму как перейти к тегу номер 2, нажав кнопку номер 2, перейти к тегу номер 3, нажав кнопку номер 3 и так далее.

Octane 16.05.2010 13:08

Так сейчас же работает, как вы хотите.
---------
А в IE не работает… это, наверное, из-за того, что фокус по кнопкам сбрасывает выделение. Замените input на что-нибудь другое.


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