Advertisement
VF-

eHázi - Felfújt szóköz

VF-
Dec 18th, 2022 (edited)
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 3.14 KB | Source Code | 0 0
  1. // ==UserScript==
  2. // @name        eHázi - Felfújt szóköz
  3. // @namespace   VF@eHazi
  4. // @description Az összeroskadt szóközöket felfújja, hogy látszódjanak a sorbehúzások a forráskódokban
  5. // @match       https://ehazi.hu/q/*
  6. // @version     0.1
  7. // @grant       none
  8. // ==/UserScript==
  9.  
  10. let kategoria = document.querySelector('div#__question_page>div>div>div:last-of-type div.w3-center')
  11. if (! kategoria || ! kategoria.textContent.includes('Informatika')) {
  12.   return
  13. }
  14.  
  15. let stilus = document.createElement('style')
  16. stilus.textContent = `
  17.   div.us-forraskod-szokoz { white-space: pre-wrap; }
  18.   div.us-forraskod-szokoz br { display: none; }
  19. `
  20. document.head.appendChild(stilus)
  21.  
  22. function szokozFelfujva()
  23. {
  24.   if (! document.getElementById('showOriginalQuestionDiv-tarolo')) {
  25.     let kapcsolo = document.getElementById('showOriginalQuestionDiv')
  26.     if (kapcsolo) {
  27.       let fejlec = document.createElement('div')
  28.       fejlec.id = 'showOriginalQuestionDiv-tarolo'
  29.       fejlec.className = 'w3-clear'
  30.  
  31.       kapcsolo.replaceWith(fejlec)
  32.       kapcsolo.classList.add('w3-left')
  33.       fejlec.appendChild(kapcsolo)
  34.  
  35.       let ikonTar = document.createElement('div')
  36.       ikonTar.className = 'w3-right'
  37.       fejlec.appendChild(ikonTar)
  38.     }
  39.   }
  40.  
  41.   let fejlecLista = document.querySelectorAll('div#__question_page>div>div>header+div, div#paginateResponse header, div#showOriginalQuestionDiv-tarolo')
  42.   for (let i = 0, l = fejlecLista.length; i < l; i++) {
  43.     let ikonTar = fejlecLista[i].querySelector('div.w3-right, span.w3-right')
  44.     if (ikonTar.querySelector('a')) {
  45.       continue
  46.     }
  47.  
  48.     let szoveg = fejlecLista[i].nextElementSibling
  49.     szoveg.firstChild.textContent = szoveg.firstChild.textContent.trimLeft()
  50.     szoveg.lastChild.textContent = szoveg.lastChild.textContent.trimRight()
  51.  
  52.     let szukseges = /^ /m.test(szoveg.textContent)
  53.     if (szukseges) {
  54.       szoveg.classList.add('us-forraskod-szokoz')
  55.     }
  56.  
  57.     let link = document.createElement('a')
  58.     link.href = '#'
  59.     link.title = 'Szóköz felfújás'
  60.     link.className = 'w3-margin-left'
  61.     link.addEventListener('click', szokozValtas)
  62.  
  63.     let ikon = document.createElement('i')
  64.     ikon.className = `fa fa-align-${ szukseges ? 'right' : 'left' } fa-fw w3-text-theme w3-hover-text-green`
  65.     link.appendChild(ikon)
  66.  
  67.     ikonTar.appendChild(link)
  68.     ikonTar.appendChild(document.createTextNode('Köz'))
  69.   }
  70. }
  71.  
  72. function szokozValtas(esemeny)
  73. {
  74.   esemeny.preventDefault()
  75.   esemeny.target.parentNode.parentNode.parentNode.nextElementSibling.classList.toggle('us-forraskod-szokoz')
  76.   if (esemeny.target.classList.contains('fa-align-right')) {
  77.     esemeny.target.classList.replace('fa-align-right', 'fa-align-left')
  78.   } else {
  79.     esemeny.target.classList.replace('fa-align-left', 'fa-align-right')
  80.   }
  81. }
  82.  
  83. szokozFelfujva()
  84.  
  85. let szkript = document.createElement('script')
  86. szkript.textContent = `
  87. ${ szokozFelfujva.toString() }
  88. ${ szokozValtas.toString() }
  89.  
  90. $(document).ajaxSuccess((event, jqXHR, ajaxOptions, data) => ajaxOptions.type == 'GET' && ajaxOptions.url.startsWith('?page=') && szokozFelfujva())
  91. `
  92. document.head.appendChild(szkript)
  93.  
Tags: userscript
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement