hjkl で スクロールしない

version 2.3 で 下記 clickをクリックする(マウスでクリックでなくヒント経由でも)
とhjklでスクロールできないと思います。


click


このソースは


<a href="#jump1">click</a>
<a name="jump1"><!-- --></a>


となっています。


これは、util.computedStyle が 原因でした。

function computedStyle(node) {
    while (node instanceof Text && node.parentNode) {
        node = node.parentNode;
    }
    return node.ownerDocument.defaultView.getComputedStyle(node, null);
}


スクロール処理は、selectionの最初のRangeのstartContainerを起点に
スクロール可能な要素にあたるまで親へ上がっていきます。
その時にutil.computedStyleを利用しています。


"click"を 押して ジャンプした結果、startContainer には comment node が 入っています。
上記の処理では、comment が 渡されることは考慮されていないためエラーになってしまいます。


function computedStyle(node) {
    while (((node instanceof Text)|| (node instanceof Comment)) && node.parentNode) {
        node = node.parentNode;
    }
    return node.ownerDocument.defaultView.getComputedStyle(node, null);
}

これで、とりあえず上記状態でもスクロールできるようになります。
(nodeType で しっかり確認したほうが良いかな?)