2
Internet Explorer 11以降で少し問題があります。私はスクロール可能なコンテナdiv( "overflow-y:auto"付き)と "contenteditable = true"の子divを持っています。IE11 + =>子divをフォーカスすると親が上にスクロールする
私が問題にしているのは、プログラムでdiv(element.focus()を使用)にフォーカスを当てようとすると、Internet Explorerは自動的に親divの先頭にスクロールしています。私は、自動的にスクロールしないようにIEの回避策を見つけようとしていますが、まだ見つけられませんでした。
http://jsfiddle.net/grese/dvxh74fr/9/
HTML::
<div id="container">
<div id="editor" contenteditable="true">
<!-- sample text/html here -->
</div>
</div>
<button id="bold">bold</button>
CSS:
ここは、問題を示しフィドルです3210
#container { height: 250px; overflow-y: auto; border: 1px solid black; } #editor { padding: 10px; }
JS:問題を再現する
var container = document.getElementById('container');
var editor = document.getElementById('editor');
var bold = document.getElementById('bold');
// initially, scroll to bottom...
container.scrollTop = 200;
bold.addEventListener('click', function(e) {
e.preventDefault();
document.execCommand('bold');
// bring focus back to the editor...
// this is causing IE to scroll to the top of the container :(
editor.focus();
});
ステップ:
- オープンIE11でフィドル(またはIEエッジ)、および "ファイル名を指定して実行" をクリックし
- 選択(ハイライト)テキストの下のテキスト
- "太字"ボタンをクリック
- コンテナが自動的にあなたが他のブラウザ(Safariのは、Firefox、クローム)で同じ手順を経る場合は、コンテナがスクロールしないことに気づくでしょうトップ
にスクロールしたことを確認します。これは以前と同じスクロール位置にとどまります(これは正しい動作です)。
アイデア?
FY Edgeで問題が発生します。 –
@Michael_B - ありがとうございました。回避策を見つけましたか? –
@Michael_B - エッジを含めるように投稿を更新しました。ありがとうございます! –