Better Fullscreen AIFap

fullscreen for aifap

  1. // ==UserScript==
  2. // @name Better Fullscreen AIFap
  3. // @include *aifap.net/view/*
  4. // @run-at document-start
  5. // @grant GM_addStyle
  6. // @locale en
  7. // @description fullscreen for aifap
  8. // @version 0.0.1.20190111070049
  9. // @namespace https://greasyfork.org/users/31574
  10. // ==/UserScript==
  11. /*- The @grant directive is needed to work around a design change
  12. introduced in GM 1.0. It restores the sandbox.
  13. */
  14.  
  15. async function GM_main () {
  16. document.showing = false;
  17. function sleep(ms) {
  18. return new Promise(resolve => setTimeout(resolve, ms));
  19. }
  20. await sleep(2000);
  21. var info = document.getElementsByClassName('AIF-PostInformation')[0];
  22. var topBar = document.getElementsByClassName('AIF-MainHeader')[0];
  23. var postViewer = document.getElementsByClassName('AIF-PostViewer')[0];
  24. var image = document.getElementsByClassName('AIF-PostViewerImage')[0];
  25. var content = document.getElementsByClassName('AIF-PostViewer__Content')[0];
  26. var FullScreenBtn = document.createElement("BUTTON");
  27. FullScreenBtn.id = "fullscreen";
  28. FullScreenBtn.textContent = "Fullscreen";
  29. FullScreenBtn.onclick = function() {
  30. // if already full screen; exit
  31. // else go fullscreen
  32. if (
  33. document.fullscreenElement ||
  34. document.webkitFullscreenElement ||
  35. document.mozFullScreenElement ||
  36. document.msFullscreenElement
  37. ) {
  38. if (document.exitFullscreen) {
  39. document.exitFullscreen();
  40. var cssStyle = document.createElement('style');
  41. cssStyle.type = 'text/css';
  42. var rules = document.createTextNode(".AIF-PostViewer__Content{height: 100%}");
  43. cssStyle.appendChild(rules);
  44. document.getElementsByTagName("head")[0].appendChild(cssStyle);
  45. }
  46. } else {
  47. if (postViewer.requestFullscreen) {
  48. postViewer.requestFullscreen();
  49. var cssStyle = document.createElement('style');
  50. cssStyle.type = 'text/css';
  51. var rules = document.createTextNode(".AIF-PostViewer__Content{height: 100% !important}");
  52. cssStyle.appendChild(rules);
  53. document.getElementsByTagName("head")[0].appendChild(cssStyle);
  54. }
  55. }
  56. }
  57. document.getElementsByClassName('AIF-MainHeader__Nav')[0].appendChild(FullScreenBtn);
  58. }
  59.  
  60. addJS_Node (null, null, GM_main);
  61.  
  62. function addJS_Node (text, s_URL, funcToRun, runOnLoad) {
  63. var D = document;
  64. var scriptNode = D.createElement ('script');
  65. if (runOnLoad) {
  66. scriptNode.addEventListener ("load", runOnLoad, false);
  67. }
  68. scriptNode.type = "text/javascript";
  69. if (text) scriptNode.textContent = text;
  70. if (s_URL) scriptNode.src = s_URL;
  71. if (funcToRun) scriptNode.textContent = '(' + funcToRun.toString() + ')()';
  72.  
  73. var targ = D.getElementsByTagName ('head')[0] || D.body || D.documentElement;
  74. targ.appendChild (scriptNode);
  75. }
  76.