Avanza fiddler

Some Avanza site tweaks to ease the trading day

ของเมื่อวันที่ 03-07-2020 ดู เวอร์ชันล่าสุด

คุณจะต้องติดตั้งส่วนขยาย เช่น Tampermonkey, Greasemonkey หรือ Violentmonkey เพื่อติดตั้งสคริปต์นี้

คุณจะต้องติดตั้งส่วนขยาย เช่น Tampermonkey หรือ Violentmonkey เพื่อติดตั้งสคริปต์นี้

คุณจะต้องติดตั้งส่วนขยาย เช่น Tampermonkey หรือ Violentmonkey เพื่อติดตั้งสคริปต์นี้

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name			Avanza fiddler
// @name:sv         Avanza fix o trix
// @description		Some Avanza site tweaks to ease the trading day
// @description:sv	Lite Avanza site uppdateringar för att underlätta trading dagen
// @author			pegr69
// @include			https://www.avanza.se/*
// @version         0.9.1
// @namespace       https://greasyfork.org/users/593500
// ==/UserScript==

window.addEventListener("load", init, false);
window.addEventListener("keydown", keytrap, true);

function keytrap (e) {

   // let prevButton = document.getElementsByClassName('fa fa-angle-left')[0];
   // let nextButton = document.getElementsByClassName('fa fa-angle-right')[0];

    try {
     //  let isFirstPage = prevButton.parentElement.parentElement.className == "disabled";
     //  let isLastPage = nextButton.parentElement.parentElement.className == "disabled";

    if (window.name === "orderWindow") {
        // console.info("Avanza Orderwindow");
        if (e.keyCode == 37) { // Left arrow press
           console.log("Adding shares count...");
        }
        else if (e.keyCode == 39) { // Right arrow press
            console.log("Deleting shares count...");
        }
    }
    }
    catch(error) {
        // No navigation present.
    }

}

// Adds a simple external tweak to the Avanza links.
// Minor fixes for order window

function init()
{
  console.info("Init Avanza Fiddler, version 0.9.1");
  // Tweak all links to external target.
  tweaklinks(document);
  // Fix order window
  fixordervindow(document);
}

// Resize and remove unnecessary crap
function fixordervindow(doc)
{
    if (window.name === "orderWindow") {
        console.info("Avanza Orderwindow");
        window.resizeTo(858,774);
        let azaheader=doc.getElementsByTagName("aza-header")[0];
        let azamenu=doc.getElementsByTagName("aza-menu")[0];
        let azapmenu=doc.getElementsByTagName("aza-personal-menu")[0];
        let azafooter=doc.getElementsByTagName("aza-footer")[0];

        azaheader.style.display="none";
        azamenu.style.display="none";
        azapmenu.style.display="none";
        azafooter.style.display="none";
    }
}

// Add an external target to all valid title links

function tweaklinks(doc)
{
    // Do not touch these link titles
  let ignoreTitles=["Lägg till","Ta Bort"];
  let mapfixedlinks = [
      { href: 'https://www.avanza.se/hall-koll/min-borsskarm.html', name: 'borsskarm' },
      { href: 'https://www.avanza.se/min-ekonomi/oversikt.html', name: 'oversikt' },
      { href: 'https://www.avanza.se/hem/senaste.html', name: 'senaste' },
      { href: 'https://www.avanza.se/min-profil/installningar.html', name: 'installningar' }
  ];
    // find all links, add external attribute if not set.
  for (let a,i=0; a=doc.getElementsByTagName("a")[i]; ++i) {
    if (a.target === "") {
      if (a.title === "") {
          // console.log("AH:" + a.href);

          let ml = mapfixedlinks.find(function(element) {
              return a.href == element.href;
          });

          if ( ml != null ){
              a.target = ml.name;
              }

      }else {
          let ignore = false;
          ignoreTitles.forEach(function(value){
              let t = a.title.search(value);
              if (t != -1) {
                  console.info("Ignoring:" + value + " for title:" + a.title);
                  ignore = true;
              }
           });
          if ( ! ignore ) {
              a.target = a.title;
          }
      }
    }
  }
}