2016-12-01 32 views
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(); 
    }); 

ステップ:

  1. オープンIE11でフィドル(またはIEエッジ)、および "ファイル名を指定して実行" をクリックし
  2. 選択(ハイライト)テキストの下のテキスト
  3. "太字"ボタンをクリック
  4. コンテナが自動的にあなたが他のブラウザ(Safariのは、Firefox、クローム)で同じ手順を経る場合は、コンテナがスクロールしないことに気づくでしょうトップ

にスクロールしたことを確認します。これは以前と同じスクロール位置にとどまります(これは正しい動作です)。

アイデア?

+1

FY Edgeで問題が発生します。 –

+0

@Michael_B - ありがとうございました。回避策を見つけましたか? –

+0

@Michael_B - エッジを含めるように投稿を更新しました。ありがとうございます! –

答えて

関連する問題