ユーザーがCTRL+Homeを押したときのコンテンツ編集可能な要素で、すべてのブラウザーにキャレット位置を最初の段落の先頭に移動させようとしています。
ページ全体が編集可能であり、目前の直接の目標以外は考慮していないと仮定しましょう。
これはFirefox、Safari、IE 10で正常に機能していますが、Opera12は従うことを拒否しています。これがコードです...
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();
}
}