概要
Chrome上でタブを複数生成し、それぞれを既定量スクロールさせる処理を書いています。
実現したいこと
下記の内容を実現したいです。
- 同一URLのタブを複数生成
- タブそれぞれをスクロール
- 各タブのスクロールを連動させる
この中で特に2の実現方法がわからず悩んでいるので助言いただきたいです。
javascript
1 let tab0; 2 let tab1; 3 let tab2; 4 for(i = 0; i < TileCount; i++){ 5 let tab = eval("tab"+i) 6 OpenTab(tab); 7 async function OpenTab(sideTab){ 8 sideTab = window.open(sideUrl); //1. 同一URLのタブを複数生成 9 10 const _sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); 11 await _sleep(3000); 12 13 sideTab.scrollTo(0, windowHeight * (i + 1)); //2. タブそれぞれをスクロール 14 15 document.addEventListener('scroll', e => { 16 sideTab.scrollTo(window.scrollX + adjX, window.scrollY + adjY); //3. 各タブのスクロールを連動させる 17 }); 18 19 } 20 }
試したこと
グローバルな変数tab0 tab1 tab2
を用いずに、forの中でタブウィンドウを代入する変数let sideTab
を宣言しますと
生成したタブはスクロールされますが、全てのスクロール量が同一になってしまします。
sleep()の引数を変えると微妙にスクロール量がそれぞれバラけますがほとんど同じスクロール量です。
解決の糸口がまるで見えないので助力いただけると幸いです。
宜しくおねがいします。
回答2件
あなたの回答
tips
プレビュー