window.addEventListener('load',function(){ var SCROLL_LEN = 25; function initDiff(diff){ var txtCols = diff.querySelectorAll('td.difftxt'); var txtPres = diff.querySelectorAll('td.difftxt pre'); var width = 0; if(txtPres.length>=2){ width = Math.max(txtPres[0].scrollWidth, txtPres[1].scrollWidth); } var i; for(i=0; i<txtCols.length; i++){ txtCols[i].style.width = width + 'px'; txtPres[i].style.maxWidth = width + 'px'; txtPres[i].style.width = width + 'px'; txtPres[i].onscroll = function(e){ for(var j=0; j<txtPres.length; j++) txtPres[j].scrollLeft = this.scrollLeft; }; } diff.tabIndex = 0; diff.onkeydown = function(e){ e = e || event; var len = {37: -SCROLL_LEN, 39: SCROLL_LEN}[e.keyCode]; if( !len ) return; txtPres[0].scrollLeft += len; return false; }; } var i, diffs = document.querySelectorAll('table.splitdiff') for(i=0; i<diffs.length; i++){ initDiff(diffs[i]); } const checkWidth = function f(){ if(undefined === f.lastWidth){ f.lastWidth = 0; } if( document.body.clientWidth===f.lastWidth ) return; f.lastWidth = document.body.clientWidth; var w = f.lastWidth*0.5 - 100; if(!f.colsL){ f.colsL = document.querySelectorAll('td.difftxtl pre'); } for(let i=0; i<f.colsL.length; i++){ f.colsL[i].style.width = w + "px"; f.colsL[i].style.maxWidth = w + "px"; } if(!f.colsR){ f.colsR = document.querySelectorAll('td.difftxtr pre'); } for(let i=0; i<f.colsR.length; i++){ f.colsR[i].style.width = w + "px"; f.colsR[i].style.maxWidth = w + "px"; } if(!f.allDiffs){ f.allDiffs = document.querySelectorAll('table.diff'); } w = f.lastWidth; for(let i=0; i<f.allDiffs.length; i++){ f.allDiffs[i].style.width = '100%'; f.allDiffs[i].style.maxWidth = w + "px"; } }; checkWidth(); window.addEventListener('resize', checkWidth); }, false);