您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to keep login alive... Das Script setzt die "Automatische LogOut-Funktion" der ING (ehem. DiBa) Banking Site außer Kraft. Die Seite bleibt so lange online, bis man sich selber abmeldet. Die Watchlist aktualisiert ohne Unterbrechung (Kursaktualisierung muss nicht mehr manuell angestoßen werden). Hauseigene Werbung wird ebenfalls versucht auszublenden (Angebote, Kredite etc.)
// ==UserScript== // @name ING DiBa Login keepAlive // @namespace https://*.ing-diba.* // @version 0.8.3 // @description try to keep login alive... Das Script setzt die "Automatische LogOut-Funktion" der ING (ehem. DiBa) Banking Site außer Kraft. Die Seite bleibt so lange online, bis man sich selber abmeldet. Die Watchlist aktualisiert ohne Unterbrechung (Kursaktualisierung muss nicht mehr manuell angestoßen werden). Hauseigene Werbung wird ebenfalls versucht auszublenden (Angebote, Kredite etc.) // @author Chillchef // @include https://wertpapiere.ing.* // @include https://banking.ing.* // @XincludeX *://*.ing.*/* // @grantX none // @license MIT /* // @grant GM_setValue // @grant GM_getValue // @grant GM_setClipboard // @grant unsafeWindow // @grant window.close // @grant window.focus // @grant window.onurlchange // @run-at document-idle */ // ==/UserScript== (function() { 'use strict'; //initEvents(); if(window.debugOutput !== undefined) { window.debugOutput = true; } //setTimeout(function(){restoreConsole();},400); log("ING KeepAlive Script start:"); log(document.location); var cnt = 0; var hBckup = new Object(); var d = document; var t = 100000; setTimeout(function(){refreshLogin();},t); setTimeout(function(){refreshPopup();},t); var classesToHide = new Object(); classesToHide[0] = ["ghost-account","0"]; classesToHide[1] = ["hint sales-signals sales-signals--wide gap-top-2-lg sales-signals__teaser","0"]; classesToHide[2] = ["hint sales-signals sales-signals--wide","0"]; classesToHide[3] = ["modal modal--open","0"]; classesToHide[4] = ["hint sales-signals sales-signals--wide","0"]; classesToHide[5] = ["hint sales-signals","0"]; classesToHide[6] = ["insight insight--ghost","0"]; classesToHide[7] = ["insight insight--teaser","0"]; classesToHide[8] = ["insight-modal","0"]; classesToHide[9] = ["u-print-hidden","2"]; classesToHide[10] = ["insight insight--slider","0"]; classesToHide[11] = ["insight","0"]; classesToHide[12] = ["insight insight--elevated","0"]; classesToHide[13] = ["announcement","0"]; classesToHide[14] = ["sh-title-arrow-box","0"]; //classesToHide[15] = ["xxx","0"]; //classesToHide[16] = ["xxx","0"]; //classesToHide[17] = ["xxx","0"]; //classesToHide[18] = ["xxx","0"]; //classesToHide[19] = ["xxx","0"]; //classesToHide[20] = ["xxx","0"]; //window.addEventListener('DOMContentLoaded', sorryBro()); //window.addEventListener('DOMContentLoaded', styleStart()); window.addEventListener('DOMContentLoaded', TimerStart()); function TimerStart() { setTimeout(function(){styleStart();},500); setTimeout(function(){sorryBro();},500); } function log(txt) { var dt = new Date(); console.log(dt.toLocaleString()+ "." + dt.getMilliseconds() + " " + txt); } function initEvents() { log("initEvents()"); //test1 document.onreadystatechange = function(){ if(document.readyState == "complete") { log("Test1: document.onreadystatechange == \"complete\""); } if(document.readyState == "interactive") { log("Test1: document.onreadystatechange == \"interactive\""); } } //test2 window.addEventListener('load', function(){log("Test2: window.addEventListener load");}); //test3 document.addEventListener('DOMContentLoaded', function(){log("Test3: document.addEventListener DOMContentLoaded");}); } function styleStart() { cnt++; log("styleStart() Nr." + cnt); editStyle("sh-page ing-diba-content-to-blur","95%"); editStyle("content","95%"); editStyle("isin","95%"); btnColor(); //Werbeeinblendungen ausblenden. Falls nicht gewünscht, einfach auskommentieren oder auf 'false' setzen! hideClasses(true); selectHandelsPlatz(); //watchListFullNames(); } function btnColor() { log("btnColor() start"); try { var loBtn = d.getElementsByClassName("ing-sn-session-button__link")[0].nextElementSibling; loBtn.innerText = "Kein Auto-Logout!"; } catch { } //d.getElementsByClassName("session")[0].style.cssText = ":hover {color: red !important; background-color: green !important;}"; d = document; var c = "rgb(255, 197, 161)"; var ho = [ ["session","rgb(255, 98, 50)"], //rgb(255, 98, 0) ["ing-header",c], ["ing-sn-content-to-blur",c], ["ing-header__bottom",c], ["navigation-l1",c], ["ingde-sn-search-input","rgb(255, 222, 201)"], ["ing-sn-session-button__refresh","rgb(191, 73, 0)"] ]; var b; for(var s in ho) { try { b = document.getElementsByClassName(ho[s][0]); b[0].style["background-color"] = ho[s][1]; window.console.log("btnColor("+ho[s][0]+") OK"); } catch(e) { window.console.log("btnColor("+ho[s][0]+") Fehler: " + e.message); window.console.log(b); } } //setTimeout(function(){btnColor();},10000); } function isWatchlist() { try { //return window.location.toString().includes("wertpapiere"); return document.getElementsByClassName("sh-title")[0].innerText.toLowerCase().includes("watchlist"); } catch { return false; } } function selectHandelsPlatz() { try { log("selectHandelsPlatz()"); var tradeMask = d.getElementsByClassName("ibbr-table-cell"); for(var x in tradeMask) { try { if(tradeMask[x].innerHTML.toLowerCase().includes("direkthandel")) { log("direkthandel klick"); tradeMask[x].click() setTimeout(function(){selectTradeOptions();},1000); break; } } catch { } } } catch { } } function selectTradeOptions() { var coboItems = d.getElementsByTagName("option"); console.log(coboItems); for(var x in coboItems) { try { /* if(coboItems[x].getAttribute("value") === "LIMIT") { coboItems[x].parentNode[0].click(); coboItems[x].selected = true; //coboItems[x].setAttribute("selected","selected"); //coboItems[x].click(); console.log("Eintrag Aktiviert:"); console.log(coboItems[x]); } */ if(coboItems[x].getAttribute("value") === "MAXIMAL") { //coboItems[x].parentNode[0].click(); coboItems[x].selected = true; //coboItems[x].setAttribute("selected","selected"); //coboItems[x].click(); console.log("Eintrag Aktiviert:"); console.log(coboItems[x]); } } catch { } } } function refreshLogin() { if(isWatchlist()) { return; } try { //var clsn = "session__refresh"; //alt1 //var clsn = "ing-sn-session-button__refresh"; //alt2 // var clsn = "session-button__refresh-button"; var reloadBtn = d.getElementsByClassName(clsn); if(reloadBtn[0]) { reloadBtn[0].click(); log(" Login-Refresh"); } } catch(e) { //window.alert("DiBa-Script-Refresh-Fehler: " + e.message); log("Fehler in refreshLogin(): " + e.message + " !!!"); console.log(e); } setTimeout(function(){refreshLogin();},t); } function refreshPopup() { try { var pId = "QuotestreamPopup"; var p = d.getElementById(pId); if(p !== null) { var ph = p.clientHeight; if(ph > 0) { d.getElementById("ctl00_QsPopup_Reload").click(); log("refreshPopup() Watchlist Aktualisierung OK"); } } } catch(e) { //window.alert("DiBa-Script-Popup-Fehler: " + e.message); log("Fehler in refreshPopup(): " + e.message + " !!!"); console.log(e); } setTimeout(function(){refreshPopup();},2000); } //Falls Serverfehler "Entschuldigung!" beim LoginRefresh: function sorryBro() { try { var s = d.getElementsByClassName("headline")[0]; if(s !== undefined) { log("sorryBro() Fehlersite wurde geladen."); console.log("innerText: '" + s.innerText + "'"); if(s.innerText == "Entschuldigung!") { log("sorryBro():Entschuldigung! Gehe zurück zur vorherigen Site."); history.back(); } else { log("sorryBro() Fehlersite unbekannt? "); } } } catch(e) { log("sorryBro() Fehler: " + e.message); } } function hideClasses(hide) { for(var v in classesToHide) { hideClass(classesToHide[v][0], classesToHide[v][1], hide); } } function hideClass(clsName, cnt, hide) { var cnter = -1; var isId = false; try { var sichtbarkeit = hide ? 'hidden' : 'visible'; var ga = document.getElementsByClassName(clsName); if(ga === null || ga.length === 0) { var e = d.getElementById(clsName); ga = new Array(); ga[0] = e; isId = true; } else { isId = false; } if(ga !== null) { for(var v in ga) { if(ga[v] !== null) { cnter++; if(cnter < cnt || ga[v].localName === "form") { continue; } if((!isId && ga[v].className === clsName) || (isId && ga[v].id !== undefined && ga[v].id === clsName)) { /* cnter++; if(cnter < cnt) { continue; } */ ga[v].style.visibility = sichtbarkeit; if(hide === true) { if (hBckup[ga[v].id] === undefined) { hBckup[ga[v].id] = ga[v].style.height;} ga[v].style.height = '0px'; } else { if (hBckup[ga[v].id] !== undefined) { ga[v].style.height = hBckup[ga[v].id]} } log(">>> hideClass: " + clsName + "[idx " + cnter + "] versteckt: " + hide); console.log(ga); } } } } else { log(">>> hideClass: " + clsName + "[idx " + cnter + "] ist NULL"); } } catch(e) { window.alert("DiBa-Script-Hide-Class-Fehler: " + clsName + ": " + e.message); window.console.log("Fehler: " + e.message + " !!!"); console.log(e); } } function editStyle(clsName, clsWidth) { try { var c; c = d.getElementsByClassName(clsName); if(c === null || c.length == 0) { c = d.getElementById(clsName); } if(c !== null && c.length > 0) { for(var v in c) { try { c[v].style["max-width"] = clsWidth; c[v].children[1].style.maxWidth = clsWidth; log("editStyle(): " + clsName + " auf " + clsWidth + " gesetzt"); } catch(ex) { } } } } catch(e) { window.alert("DiBa-Script-editStyle-Fehler: " + clsName + ": " + e.message); window.console.log("Fehler: " + e.message + " !!!"); console.log(e); } } var f; function createFrame(url, id) { try { f = document.createElement('iframe'); f.src = url; document.body.appendChild(f) f.setAttribute("id",id); return document.getElementById(id).contentDocument.getElementsByClassName("headline instrument-name")[0].innerHTML; } catch(e) { return id; } } function watchListFullNames() { var t = d.getElementById("ctl00_WebPartManager_wp1597137417_wp45466993_PortfolioItems_Control_Grid").childNodes[2].rows; for(var r in t) { console.log(t[r]); if(t[r].className === "first") { try { var id = t[r].cells[0].textContent; var url = t[r].cells[0].childNodes[0].getAttribute("href"); t[r].cells[0].textContent = createFrame(url, id); } catch(e) { console.log(e); } } } } function restoreConsole() { var i = document.createElement('iframe'); i.style.display = 'none'; document.body.appendChild(i); window.console = i.contentWindow.console; i.parentNode.removeChild(i); } })();