在用户按下 CTRL+Home 时的 contenteditable 元素中,我试图让每个浏览器将插入符号位置移动到第一段的开头。
让我们假设整个页面都是可编辑的,除了手头的直接目标之外,我们不考虑其他任何事情。
这在 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();
}
}