您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Makes reading heise news a little more comfortable
当前为
// ==UserScript== // @id heise.de-8280af0b-4f9b-487e-95b3-45fff377348e // @name heise.de Easy Reading // @name:de heise.de Easy Reading // @version 1.3.1 // @namespace // @author SpineEyE // @description Makes reading heise news a little more comfortable // @description:de Macht heise lesen etwas angenehmer // @include http://www.heise.de/* // @run-at document-idle // @grant GM_addStyle // ==/UserScript== // heise.de Cleaner user script // Copyright 2011-2015, SpineEyE // Released under the GPL license // http://www.gnu.org/copyleft/gpl.html // // ----------------------------------------------------------------------------- // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // // changelog // v1.3.1 - 14.05.2015: Fix: Text in unordered list has the same size as the rest, // small code simplification // v1.3 - 02.03.2015: Added: Back Button for the end of a gallery // v1.2.5 - 12.02.2015: Fix: lead image anti popup // v1.2.4 - 18.12.2014: Clicking the article's lead image ("aufmacherbild") will redirect to full size image instead of heise's container page for it (only some pictures are actually inserted downsized). // v1.2.3 - 18.12.2014: Fix: Links at the top werent clickable // v1.2.2 - 14.10.2014: Compatibility fix for Greasemonkey // v1.2.1 - 22.03.2014: Fixed meldung_wrapper text content to have the new style as well // v1.2 - 01.03.2014: Now uses GM_addStyle to change article style. // Text in <pre> tags is readable in whole width // v1.1.1 - 16.11.2013: fixed h2-link-construction // (function () { // function wrapper for Opera /* Better for our eyes */ if (document.getElementsByClassName('meldung_wrapper').length > 0) { GM_addStyle( '.meldung_wrapper, .meldung_wrapper p, .meldung_wrapper h5, .artikel_content article p {' + 'font-family: Georgia,"Times New Roman",serif;' + 'line-height: 155%;' + 'padding: 0.5em 0;' + 'font-size: 1em !important;' + 'letter-spacing: 0.2px;' + '}' + '#mitte_news ul {' + 'font-size: 1em !important;' + '}' ); } /* if (document.getElementsByClassName('artikel_content').length > 0) { GM_addStyle( '.artikel_content article p {' + 'font-family: Georgia,"Times New Roman",serif;' + 'line-height: 155%;' + 'padding: 0.5em 0;' + 'font-size: 1em !important;' + 'letter-spacing: 0.2px;' + '}' ); }*/ /* remove top margin */ document.getElementById("container_content").style.top = 0; document.getElementById("container").removeChild(document.getElementById("bannerzone")); /* fix to make text in <pre> tags visible over the whole width */ GM_addStyle( 'pre {' + 'position: relative;' + 'z-index: 1;' + 'background-color: #FFFFFF;' + '}' + 'pre:hover {' + 'display: table-caption;' + 'margin-top: 0' + '}' ); /* prevent image popups, rather insert normal hyperlink bild_links, bild_rechts **/ var inlineImages = document.evaluate('//span[starts-with(@class,"bild_")]', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null), i, span, img, a, bigImageURL; for(i = 0; i < inlineImages.snapshotLength; i++) { //console.log("Snapshot item " + i); span = inlineImages.snapshotItem(i); img = span.children[0]; a = document.createElement('a'); bigImageURL = img.getAttribute('data-zoom-src'); if (!bigImageURL) continue; a.href = bigImageURL; // cloning a node removes all event listeners, so the popup as well a.appendChild(img.cloneNode(false)); span.insertBefore(a, img); span.removeChild(img); } /* link to full size picture for aufmacherbild */ var aAufmacher = document.getElementsByClassName("aufmacherbild")[0].children[0]; var imgAufmacher = aAufmacher.children[0]; if (imgAufmacher) { a = document.createElement('a'); // class for the zoom overlay image in the bottom right corner a.setAttribute('class', 'image_zoom'); // console.log(imgAufmacher.src.replace(/\/scale.*?\/imgs\//i, "/imgs/")); a.href = imgAufmacher.src.replace(/\/scale.*?\/imgs\//i, "/imgs/"); // cloning a node removes all event listeners, so the popup as well a.appendChild(imgAufmacher.cloneNode(false)); document.getElementsByClassName("aufmacherbild")[0].insertBefore(a, aAufmacher); document.getElementsByClassName("aufmacherbild")[0].removeChild(aAufmacher); } /* gallery fix: enable back button on advertisement slide */ if (document.querySelector(".gallery")) { a = document.createElement("a"); a.setAttribute("data-slide", "prev"); a.setAttribute("class", "gallery-control slide slide-prev greasy-added"); a.innerHTML = '<span class="fa fa-angle-left fa-4x fa-inverse"></span>'; // we need two of this, make deep copy var b = a.cloneNode(true); /* Several reasons why this runs as an interval: * 1) I have found no way to hook into the event emitter * 2) Every time changing tabs and returning to the page removes the button * 3) Every time this back button is pressed, it's removed * We could probably use the MutationObserver ... Maybe I'll look into it * to see if it's lower on resources */ var galleryGuard = window.setInterval(function(){ if (document.querySelector('.image-num').innerHTML.indexOf("Zurück zum Start") !== -1 && document.querySelectorAll('.greasy-added').length != 2) { // modal window / fullscreen mode? // probably better to add the button to both views //if (document.querySelector(".gallery .heise-modal").style.display != "none") { document.querySelector(".image-stage").appendChild(a); //} //else { document.querySelector(".gallery-inner").appendChild(b); //} } }, 200); } })(); // function wrapper for Opera