■ textarea の scrollイベントがEdgeで実行されない [JavaScript版]

 textareaのscrollに対するイベント(onScroll)が Microsoft Edgeで実行されない(IE11では実行される)。

● 左側textarea を scrollし、可視部分付近を右側textareaに表示する。
  Edgeの場合、scrollだけでは表示されず、clickイベントも併用する。
   「clickで表示」をチェックOnの状態にして、
    左側textareaをscrollし、エリア内をclcik ->右側textareaに表示する。
  この付近だけのデータをグラフ化する場合などに利用できる。
  (注)もう少しうまい方法がないか、引き続き検討中。


click で表示


● html
  <form name="form1">
    <input type="checkbox" name="chkClk" >click で表示
    <textarea name="ta0" rows="5" cols="20" value=""
       onScroll="scroll()" onClick="clickTa()"></textarea>
    <textarea name="ta1" rows="5" cols="20" value=""></textarea>
  </form>
● JavaScript program
//.............................
  function clickTa() {
//.............................
    if(df1.chkClk.checked) scroll();
  }
//.............................
  function scroll() {
//.............................
    var ta = df1.ta0;
    var sh = ta.scrollHeight - ta.offsetHeight;

    ista = Math.round((N-5)*ta.scrollTop/sh);
    iend = ista + 5;

    df1.ta1.value = "";

    for(var i=ista; i<iend; i++) {
      if(i == N) break;
      df1.ta1.value += i;
      if(i < iend-1) df1.ta1.value += "\n";
    }
  }

ホーム