В элементе contenteditable, когда пользователь нажимает CTRL + Home Я пытаюсь, чтобы каждый браузер перемещал позицию каретки в начало первого абзаца.JavaScript: установите позицию каретки на начало первого абзаца (ошибка Opera)
Предположим, что вся страница доступна для редактирования, и мы не рассматриваем ничего, кроме прямой цели.
Это прекрасно работает в Firefox, Safari и IE 10, однако Opera 12 отказывается подчиняться. Вот код ...
var s = window.getSelection();
if (e.ctrlKey && e.keyCode==36)
{
var p0 = document.getElementsByTagName('p')[0];
if (p0.firstChild.nodeName.toLowerCase()=='#text')
{//<p>text
var p = p0.firstChild;
}
else if (p0.firstChild.firstChild.nodeName.toLowerCase()=='#text')
{//<p><em>text
var p = p0.firstChild.firstChild;
}
if (typeof p=='object')
{
s.getRangeAt(0).setStart(p,0);
s.getRangeAt(0).setEnd(p,0);
s.collapseToStart();
}
}
Не редактировать свой пост, если вы не понимаете, что-то комментарий, и я буду рад уточнить.
[Параллельный поток на my.opera.com] (http://my.opera.com/community/forums/topic.dml?id=1449662). – ricksmt