ING DiBa Login keepAlive

try to keep login alive... Das Script setzt die "Automatische LogOut-Funktion" der ING DiBa-Site außer Kraft. Die Seite bleibt so lange Online, bis man sich selber abmeldet. Hauseigene Werbung wird nun ebenfalls ausgeblendet.

Verzia zo dňa 14.09.2021. Pozri najnovšiu verziu.

// ==UserScript==
// @name         ING DiBa Login keepAlive
// @namespace    https://*.ing-diba.*
// @version      0.7.95
// @description  try to keep login alive... Das Script setzt die "Automatische LogOut-Funktion" der ING DiBa-Site außer Kraft. Die Seite bleibt so lange Online, bis man sich selber abmeldet. Hauseigene Werbung wird nun ebenfalls ausgeblendet.
// @description  desc2 Banking
// @author       Chillchef
// @match        https://*.ing.*
// @match        https://ing.*
// @match        https://*.ing-diba.*
// @include      https://*.ing-diba.*
// @include      https://*.ing.*

// @grant        unsafeWindow
// @run-at       document-idle
// ==/UserScript==

(function() {
    'use strict';
    //initEvents();

    if(window.debugOutput !== undefined)
    {
        window.debugOutput = true;
    }
    //setTimeout(function(){restoreConsole();},400);


    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] = ["xxx","0"];
    //classesToHide[14] = ["xxx","0"];
    //classesToHide[15] = ["xxx","0"];
    //classesToHide[16] = ["xxx","0"];

    //hideClasses(true);
    window.addEventListener('DOMContentLoaded', sorryBro());
    window.addEventListener('DOMContentLoaded', styleStart());

    //setTimeout(function(){styleStart();},1100);
    //setTimeout(function(){sorryBro();},1000);

    //window.addEventListener('DOMContentLoaded', function(){setTimeout(function(){styleStart();},300)});

    function log(txt)
    {
        var d = new Date();
        console.log(d.toLocaleString()+ "." + d.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","90%");
        editStyle("isin","90%");

        //Werbeeinblendungen ausblenden. Falls nicht gewünscht, einfach auskommentieren oder auf 'false' setzen!
        hideClasses(true);


        btnColor();
        //watchListFullNames();
    }

    function btnColor()
    {
        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;}";

            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)"]
                      ];

            for(var s in ho)
            {
                try
                {
                    var b = d.getElementsByClassName(ho[s][0]);
                    b[0].style["background-color"] = ho[s][1];
                }
                catch(e)
                {
                    window.console.log("Fehler btnColor(): " + e.message);
                }
            }
    }

    function refreshLogin()
    {
        try
        {
            //var clsn = "session__refresh"; //alt
            var clsn = "ing-sn-session-button__refresh";
            
            var reloadBtn = d.getElementsByClassName(clsn);
            if(reloadBtn[0])
            {
                reloadBtn[0].click();
                log(" Login-Refresh");
            }
        }
        catch(e)
        {
            window.alert("DiBa-Script-Refresh-Fehler: " + e.message);
            window.console.log("Fehler: " + 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();
                }
            }
        }
        catch(e)
        {
            window.alert("DiBa-Script-Popup-Fehler: " + e.message);
            window.console.log("Fehler: " + 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 !== null)
            {
                log("sorryBro() Fehlersite wurde geladen.");
                if(s.innerText == "Entschuldigung!")
                {
                    log("sorryBro() Gehe zurück zur vorherigen Site.");
                    history.back();
                }
                else
                {
                    log("sorryBro() Fehlersite unbekannt? ");
                }
            }
        }
        catch
        {
        }
    }

    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 = d.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)
                {
                    cnter++;
                    if(cnter < cnt)
                    {
                        continue;
                    }

                    if(ga[v] !== null)
                    {
                        
                            if((!isId && ga[v].className === clsName) || (isId && ga[v].id !== undefined && ga[v].id === clsName))
                            {
                                   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);
                            }
                        
                   }
               }
            }
        }
        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)
            {
                c = d.getElementById(clsName);
            }
            if(c.length > 0)
            {
                for(var v in c)
                {
                    try
                    {
                        c[v].style["max-width"] = clsWidth;
                        c[v].children[1].style.maxWidth = clsWidth;
                    }
                    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);
    }
})();
长期地址
遇到问题?请前往 GitHub 提 Issues。