Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Remove Frames
- // @version 14.1.20.2
- // @license MIT
- // @description Removes frames on imageboards
- // @include http://iichan.hk/*
- // @include http://nowere.net/*
- // ==/UserScript==
- (function (window, undefined) {
- var options = {
- 'isRight': false,
- 'autohide': true,
- 'animate': true
- };
- if (window.self != window.top) {
- if (window.name === 'list' || window.name === 'menu') {
- if (document.readyState === 'complete' || document.readyState === 'interactive') {
- removeRealFrame();
- } else {
- document.addEventListener('DOMContentLoaded', removeRealFrame.bind(null), false);
- }
- }
- } else if (window.frames.length === 0) {
- if (document.body.childNodes.length < 2) {
- return;
- };
- if (document.readyState === 'complete' || document.readyState === 'interactive') {
- addDivFrame();
- } else {
- document.addEventListener('DOMContentLoaded', addDivFrame.bind(null), false);
- }
- }
- function removeRealFrame () {
- var navFrameBody = window.localStorage.getItem('FRAME_navFrame');
- if (!navFrameBody) {
- navFrameBody = document.body.innerHTML;
- window.localStorage.setItem('FRAME_navFrame', navFrameBody);
- }
- var gotoURL = window.localStorage.getItem('FRAME_lastPage');
- if (gotoURL) {
- window.localStorage.removeItem('FRAME_lastPage');
- } else {
- gotoURL = window.top.frames[1].location.href;
- }
- window.top.open(gotoURL, '_self');
- }
- function addDivFrame () {
- var navFrameBody = window.localStorage.getItem('FRAME_navFrame');
- if (!navFrameBody) {
- window.localStorage.setItem('FRAME_lastPage', document.location.href);
- window.open(document.location.origin, '_self');
- }
- var navDiv = document.createElement('div');
- navDiv.id = 'frame-nav-div';
- navDiv.innerHTML = navFrameBody;
- var links = navDiv.querySelectorAll('a');
- for (var i = links.length - 1; i >= 0; i--) {
- var a = links[i];
- if (a.target === '_parent' || a.target === '_top') {
- a.target = '_blank';
- } else if (a.target !== '_blank' && a.target !== '_self') {
- a.target = '_self';
- }
- };
- document.body.appendChild(navDiv);
- addCSS();
- readSettings();
- }
- function addCSS () {
- var style = document.createElement('style');
- style.type = 'text/css';
- style.textContent = '\
- #frame-nav-div {\n\
- position: fixed;\n\
- bottom: 0;\n\
- top: 0;\n\
- background: inherit;\n\
- overflow: auto;\n\
- padding: 7px;\n\
- box-shadow: 0 0 5px black;\n\
- }\n\
- #frame-nav-div.left {\n\
- left: 0;\n\
- border-right: 1px solid;\n\
- }\n\
- #frame-nav-div.right {\n\
- right: 0;\n\
- border-left: 1px solid;\n\
- }\n\
- #frame-nav-div.autohide.animate {\n\
- -webkit-transition-property: -webkit-transform, opacity;\n\
- transition-property: transform, opacity;\n\
- -webkit-transition-duration: .2s;\n\
- transition-duration: .2s;\n\
- -webkit-transition-timing-function: ease-in-out;\n\
- transition-timing-function: ease-in-out;\n\
- }\n\
- #frame-nav-div.autohide.left {\n\
- -webkit-transform: translate(-90%, 0);\n\
- transform: translate(-90%, 0);\n\
- opacity: 0;\n\
- }\n\
- #frame-nav-div.autohide.right {\n\
- -webkit-transform: translate(90%, 0);\n\
- transform: translate(90%, 0);\n\
- opacity: 0;\n\
- }\n\
- #frame-nav-div.autohide:hover {\n\
- -webkit-transform: translate(0, 0);\n\
- transform: translate(0, 0);\n\
- opacity: 1;\n\
- }';
- document.head.appendChild(style);
- }
- function readSettings () {
- var navDiv = document.querySelector('#frame-nav-div');
- $toggleClass(navDiv, 'right', 'left', options.isRight);
- $toggleClass(navDiv, 'autohide', '', options.autohide);
- $toggleClass(navDiv, 'animate', '', options.animate);
- }
- function $hasClass(el, className) {
- if(!className) return false;
- return (' ' + el.className + ' ').indexOf(' ' + className + ' ') !== -1;
- }
- function $addClass(el, className) {
- if(!$hasClass(el,className)) {
- if(el.className[el.className.length - 1] != ' ') {
- el.className += ' ';
- }
- el.className += className;
- }
- }
- function $removeClass(el, className) {
- if($hasClass(el, className)) {
- var reg = new RegExp('(\\s|^)' + className + '(\\s|$)');
- el.className = el.className.replace(reg, ' ');
- }
- }
- function $toggleClass(el, onClass, offClass, isOn) {
- if(isOn == undefined) isOn = $hasClass(el, offClass);
- $addClass(el, isOn ? onClass : offClass);
- $removeClass(el, isOn ? offClass : onClass );
- }
- })(window);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement