1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. camp-firefox.de
  2. hopeless1

Beiträge von hopeless1

  • Mehrteiliges Login speichern

    • hopeless1
    • 11. April 2011 um 17:18

    Hallo Allesamt.

    Nach langer langer Zeit möchte ich dieses Thema nochmals für die Nachwelt aufgreifen...

    Nachdem nach einem Firefox-Update (gemäß dem Standart wie ich herausfand) der Zugriff meines GM-Scripts auf den Frame untersagt wurde (andere Domain!) musst ich doch nochmal ein wenig Zeit investieren.

    Natürlich griff ich den (total simplen) Vorschlag mein "Vorredners" auf, ergänzte Ihn lediglich um ein paar Zeilen und habe eine noch viel einfachere und schönere Variante als zuvor. Nochmals vielen, vielen Dank!

    Getestet habe ich es nun nur unter der FF 4.0. Also keine Ahnung ob es unter alten Versionen läuft, da sich im laufe der Zeit immer mal der Zugriff über DOM geändert hatte (keine ahnung wieso...)

    Anbei also für Personen die es benötigen (können):

    Code
    // ==UserScript==
    // @name           T-Online Webmail Splitlogin
    // @namespace      My
    // @include        https://login.idm.telekom.com*
    // ==/UserScript==
    
    
    var domInput = document.evaluate("//input[@name = 'domn']", document, null,
        XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
      var usrInput = document.evaluate("//input[@name = 'usr']", document, null,
        XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    var form = document.evaluate("//form[@name = 'login']", document, null,
      XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    form.addEventListener('submit', handleSubmit, true);
    
    
    //Für debugging
    //domInput.addEventListener('click', function(event) { switchdisplay(true); }, true);
    //usrInput.addEventListener('click', function(event) { switchdisplay(false); }, true);
    switchdisplay(false);
    
    
    function switchdisplay(IsShow) {
      //@ Zeichen entfernen und verbreitern
      domInput.parentNode.firstChild.nodeValue = ( IsShow )  ? "@"+String.fromCharCode(160)  : "";    //"\u+00A0" 
      domInput.style.width = ( IsShow )  ? "120px"  : "300px";
      //Userinput ausblenden
      usrInput.style.display = ( IsShow )  ? ""  : "none";
      usrInput.style.width = ( IsShow )  ? "120px"  : "0px";
      ( IsShow )  ? usrInput.parentNode.setAttribute("width", "120")  : usrInput.parentNode.removeAttribute("width");
      usrInput.parentNode.style.display = ( IsShow )  ? ""  : "none";
      //Einmal ne fixe breite angegeben - löschen? // previousElementSibling = previousSibling.previousSibling da das erste nur textnode ist!
      //( IsShow )  ? "@"+String.fromCharCode(160)  : usrInput.parentNode.previousElementSibling.removeAttribute("width");
      usrInput.parentNode.nextElementSibling.firstChild.nodeValue = ( IsShow )  ? String.fromCharCode(160) : "";
    }
    
    
    function handleSubmit(e) {
      //Nahezu Ursprung der Felder wiederherstellen - Optional, sieht man nur kurz :-)
      switchdisplay(true);
      //Eigentliche Arbeit
      var split = domInput.value.split("@");
      usrInput.value = split[0];
      domInput.value = split[1];
    }
    Alles anzeigen
  • Mehrteiliges Login speichern

    • hopeless1
    • 2. Januar 2010 um 00:36

    Entschuldigt meine lange Abwesenheit...

    Also danke für deine Anregungen.
    Ich denke das mit dem Reihenfolge tauschen werde ich außer acht lassen. Genauso mit dem Passwort. Das mit der Suche ist zwar wirklich unsicher, aber vll speicher ich die einfach falsch herum, oder immer einen Buchstaben/Zahl weiter. Im Prinzip denke ich werden kaum leute dieses Script nutzten... sollte ich mir also die arbeit machen daran noch was zu ändern?!

    Dein Code bezüglich der zusammenhängenden Eingabe finde ich gut, auch wenn ich die Befehle nocht nicht alle kenne (funktionsweise ist aber logisch)... XPath beim DOM wusste nicht das es sowas gibt, kenne ich nur aus XML direkt :)
    Selfhtml wird mir da aber weiterhelfen, also mache dir keine unnötige Mühe.

    Ich versuche es soweit hinzubekommen, das man nur noch das eine Feld (entsprechend verlängert natürlich) sieht und es in ein weiteres hidden-Feld eingetragen wird und dann versand wird. Da kann ich mir deine Anregung zu gute kommen lassen.

    Ich Melde mich wenn ich Erfolge vorzuweisen habe!

    P.S. Ich kann wirklich nicht viel in JS! Kann lediglich Visual Basic... Für das Greasemonkey-Script habe ich lange SelfHTML beglückt, da ich nicht einmal eine einfache Schleife so hinbekommen habe... Dazu kamen diverse Schwierigkeiten, wie etwas, das man laut SelfHTML elemente einer Form mit Formname.Elementname ansprechen kann, jedoch ging das jeweils nicht. Ich muste immer mit dem Index arbeiten?! Nunja es funktioniert zumindest!

  • Mehrteiliges Login speichern

    • hopeless1
    • 23. Dezember 2009 um 21:23

    Moin,

    Danke für deine Anregungen.
    Mir war durchaus bewusst, das die Passwörter im Klartext sichtbar sind. Jedoch muss der Anwender dazu passendes wissen besitzen (wobei angemerkt sei, dass in meinem direkten Umfeld solches nicht vorhanden ist - Adresse eingeben und surfen, Rest irrelevant :mrgreen: ) Zudem sind die Passwörter des Passwortmanagers ja noch einfacher einzusehen. Außer es ist halt ein MasterPW gesetzt, was ebenfals kaum genutzt wird (wieder Persönliche Erfahrungen).

    Auch wenn ich deinen Vorschlag anscheinend nicht ganz verstehe. Könnte ich versuchen sogar aus den 2 Feldern: Benutzer und Domain eins zu machen und beim Senden wieder zu teilen. somit hätte man gespeichert im Fx-PW-Manager z.B.
    user:test@hallo.de
    pwd:12345

    Vll kriege ich das realisiert. Bin leider nicht son Fuchs im JavaScript, muss ich wieder bissel lesen.

    Nochmals Danke

  • Mehrteiliges Login speichern

    • hopeless1
    • 23. Dezember 2009 um 12:59

    Hallo alle zusammen.

    Ich bin dem Vorschlag von boardraider gefollgt und vollgende Lösung auf Basis von Greasemonkey ausgearbeitet.
    Wenn also noch jemand das geschilderte Problem hatte, dann könnte Ihm das hier sicherlich weiterhelfen!
    Dieses Script ist übrigends nur mit Firefox v 3.1 oder höher zu nutzen, da die Native implementierte JSON-Funktion genutzt wird, die in älteren Versionen nicht zur verfügung steht! Erfolgreich getestet und genutzt wird es von mir mit v 3.5.6!

    Und damit das hier nicht ausartet, nochmal entschuldigung an alle.
    Auch wenn sich meine Meinung nicht geändert hat...
    Klar gibt es leute die sich nicht die mühe machen mal selber zu suchen. Aber genausoviele gibt es wohl die nicht mal eine Frage richtig lesen können (wollen)!!
    Aber bevor das gute Forum weiter mit nicht Themengerechten Dingen vollgebommt wird, enden hier meine Kommentare!

    Code
    // ==UserScript==
    // @name           TOAutoLogin
    // @namespace      TOAutoLogin
    // @include        https://login.idm.telekom.com/*
    // ==/UserScript==
    
    
    function account(User,Domain,Passwort) {
    	this.User = User;
    	this.Domain = Domain;
    	this.Passwort = Passwort;
    };
    
    
    // Kürzel für Speicherorte
    var sac = "Accounts";
    var sal = "AutoLogin";
    
    
    // Menüeinträge definieren
    GM_registerMenuCommand("AutoLogion", SetAutoLogin);
    GM_registerMenuCommand("Reset Login Info", ResetLoginInfos);
    GM_registerMenuCommand("Eintrag hinzufügen", AddUser);
    GM_registerMenuCommand("Eintrag löschen", RemoveUser);
    GM_registerMenuCommand("Login eintragen", FillFormUser);
    
    
    // Vorhandene Daten laden wenn möglich
    var accs;
    var auto;
    var temp = load(sac);
    var temp2 = load(sal);
    if (temp == false) {
    	accs = new Array;
    } else {
    	accs = temp
    }
    if (temp2 == false) {
    	auto = 0 ;
    } else {
    	auto = temp2;
    	if (auto <= accs.length && auto > 0) { FillForm(accs[auto-1]); }
    }
    
    
    // Tests
    // alert(accs.length);
    // alert(listall(accs));
    // alert(typeof GM_log); 
    
    
    function ResetLoginInfos(){
    	clear(sac);
    	clear(sal);
    	alert("Alle Informationen wurden gelöscht!");
    };
    
    
    function SetAutoLogin(){
    	var index = listall(accs);
    	//if (index > 0) {
    	save(sal,index);
    	//}
    };
    
    
    function AddUser() {
    	add(accs);
    };
    
    
    function RemoveUser() {
    	var index = listall(accs);
    	if (index > 0) {
    		remove(accs,index-1);
    		save(sac,accs);
    	}
    };
    
    
    function FillFormUser() {
    	var index = listall(accs);
    	if (index > 0) {
    		FillForm(accs[index-1]);
    	}
    };
    
    
    function listall(list) {
    	var msg = "Bitte wählen Sie den gewünschten Eintrag aus.\n\n";
    	msg = msg + "[0] Keinen Eintrag wählen"
    	for (var i = 0; i < list.length; i++) {
    		var ii = i + 1;
    		msg = msg + "\n[" + ii + "] " + list[i].User + "@" + list[i].Domain
    	}
    
    	var index = window.prompt(msg,0);
    	// Wurde tatsächlich eine Zahl eingegeben
    	var myregex = /\d+/;
    	var iszahl = myregex.test(index);
    	if (iszahl && index <= list.length) {
    		return index;
    	} else {
    		alert("Falsche Eingabe! 0 wird zurückgegeben.");
    		return 0;
    	}
    };
    
    
    function add(list){
    	// var index = list.length + 1
    	var usr = window.prompt("Bitte Benutzernamen eingeben.","Username");
    	var domn = window.prompt("Bitte Domainnamen eingeben.","Domain");
    	var pwd = window.prompt("Bitte Passwort eingeben.","Passwort");
    	if (usr.length < 1 || domn.length < 1 || pwd.length < 1) {
    		alert("Sie haben nicht alles ausgefüllt. Bitte versuchen Sie es noch einmal.");
    	} else {
    		var acc = new account(usr,domn,pwd);
    		list.push(acc);
    		save(sac,list);
    	}
    };
    
    
    function remove(list,index){
    	if (index > list.length) return false;
    	list.splice(index,1)
    };
    
    
    function FillForm(Account){
    
    
    var eForm = document.forms[0];
    var eUser = eForm.elements[1];
    var eDomain = eForm.elements[2];
    var ePwd = eForm.elements[3];
    
    
    eUser.value = Account.User;
    eDomain.value = Account.Domain;
    ePwd.value = Account.Passwort;
    
    
    };
    
    
    function save(name, value) {
    	GM_setValue(name, JSON.stringify(value));
    	//alert(JSON.stringify(value));
    };
    
    
    function load(name) {
    	var loads = GM_getValue(name,"null");
    	if (loads == "null") {
    		return false;
    	} else {
    		return JSON.parse(loads);
    	}
    };
    
    
    function clear(name) {
    	GM_deleteValue(name);
    };
    Alles anzeigen
  • Mehrteiliges Login speichern

    • hopeless1
    • 21. Dezember 2009 um 13:52

    Vielen Dank für die Antwort.

    Ich werde mich die Tage dann mal mit Greasmonkey bzw AutoFill Form geschäftigen. Ich werde Feedback geben, ob und wenn ka wie es geklapt hat!

    mfg

    hopeless1

    An alle andern:
    Anscheinend habe ich mich für viele unverständlich ausgedrückt. Das tut mir leid.
    Andererseits wurde man wiedermals auf Regeln und der gleichen hingewiesen, was mir imho kindisch erscheint. (Administratoren - entschuldigt dies bitte) Jedoch ist weder die Version, noch das Betriebssystem, noch extensions zur beantwortung dieser frage erfolderlich, was die Antwort von boardraider beweißt.

    Achja und in HTML gibt es einfach nicht den *1* zusammengesetzten Benutzer. Es sind 2 input-felder, somit müssten 2 werte und nicht ein Wert gespeichert werden, zuzuüglich des Passwort-Feldes. That was the problem!

  • Mehrteiliges Login speichern

    • hopeless1
    • 20. Dezember 2009 um 12:38

    Guten Tag,

    vorab bevor ich dumm von Seite angerämpelt werde, JA ich habe die Suche benutzt. Wer jedoch Passwort oder der gleichen eingibt bekommt 276 Seiten eingeräumt.

    Ich habe folgendes Anliegen:

    Wenn ich mich beim meinem Provider einlogge, muss ich einmal meine e-mail folgendermaßen eingeben: 3 Felder

    • 1. Feld - name @ 2.Feld -Domain
    • 3. Feld - Passwort.


    Es geht bei mit übrigends um T-Online: https://email.t-online.de/homepage/

    Nun Speichern Firefox natürlich nur die Domain+Passwort -Feld

    Ist es möglich (ob native oder per Addon) das auch mehrteilige Passwörter wie das meine gespeichert werden können?

    Vielen Dank im Voraus.

    mfg

    hopeless1

Unterstütze uns!

Jährlich (2025)

101,9 %

101,9% (662,48 von 650 EUR)

Jetzt spenden
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
Mastodon