exler

Exler page expander

  1. // ==UserScript==
  2. // @name exler
  3. // @namespace exler.ru
  4. // @include https://*.exler.ru/*
  5. // @description Exler page expander
  6. // @version 1
  7.  
  8. function getWidth(e) {
  9. var ss = e.style.width;
  10. if(!ss) ss = e.clientWidth;
  11. var style = window.getComputedStyle(e, null);
  12. var css = style ? style["width"] : null;
  13. if(!ss || ss == '') ss = css;
  14. if(('' + ss).endsWith('px')) ss = ('' + ss).replace(/px/, '');
  15. return ss;
  16. }
  17.  
  18. function goLoad () {
  19. var tables = document.getElementsByTagName("table");
  20. var mainTbl = null;
  21. for(var j = 0; j < tables.length; ++j) {
  22. var tbl = tables[j];
  23. var width = getWidth(tbl);
  24. if(tbl.id == 'MainPage')
  25. mainTbl = tbl;
  26. else if(width == '930' || width == '610' || width == '900')
  27. tbl.style.width = '100%';
  28.  
  29. var cells = tbl.getElementsByTagName('td');
  30. for(var i = 0; i < cells.length; ++i) {
  31. width = getWidth(cells[i]);
  32. if(width == '930' || width == '610')
  33. cells[i].style.width = '100%';
  34. }
  35. }
  36. if(mainTbl != null) {
  37. var rightSide = mainTbl.rows[0].cells[1].innerHTML;
  38. mainTbl.rows[0].cells[1].innerHTML = '';
  39.  
  40. var rightDiv = document.createElement('div');
  41. rightDiv.style.float = "right";
  42. rightDiv.style.top = 0;
  43. rightDiv.style.position='absolute';
  44. rightDiv.innerHTML = rightSide;
  45. rightDiv.style.width = mainTbl.rows[0].cells[1].width;
  46.  
  47. rightDiv.style.webkitTransform = 'scale(1.0, 0.6)';
  48. rightDiv.style.mozTransform = 'scale(1.0, 0.6)';
  49. rightDiv.style.transform = 'scale(1.0, 0.6)';
  50.  
  51. var mainWidth = document.documentElement.clientWidth - getWidth(rightDiv) - 25;
  52. mainTbl.style.width = mainWidth + 'px';
  53. mainTbl.width = mainWidth;
  54. rightDiv.style.left = mainWidth + 25 + 'px';
  55.  
  56. mainTbl.rows[0].cells[1].width = 0;
  57. var top = document.getElementsByTagName('body')[0];
  58. mainTbl.parentNode.insertBefore(rightDiv, mainTbl);
  59. var article = document.getElementById('aricle');
  60. var commentDiv = document.createElement('div');
  61. commentDiv.style.width = '100%';
  62. mainTbl.parentNode.insertBefore(commentDiv, mainTbl.nextSibling);
  63.  
  64. var articleText = article.innerHTML;
  65. var matchText = '<div class="CommentTopic">Комментарии</div>';
  66. var matchIndex = articleText.indexOf(matchText);
  67. var textBefore = articleText.substring(0, matchIndex);
  68. var textAfter = articleText.substring(matchIndex);
  69.  
  70. article.innerHTML = textBefore;
  71. commentDiv.innerHTML = textAfter;
  72. }
  73. }
  74.  
  75. window.addEventListener("load", function(){ goLoad(); }, true);
  76. // ==/UserScript==