Klassen "tooltip bubbles" beim Ausdruck mit darstellen

Diskutiere "tooltip bubbles" beim Ausdruck mit darstellen im Java Basics - Anfänger-Themen Bereich.
M

medizinstudentin

Hallo Ihr Lieben! ;-)
Ich habe verzweifelt nach einer Lösungsmöglichkeit für mein Problem gegooglet und bin dabei auf dieses Forum gestoßen. Nach entsprechender Themensuche im Forum bin ich jedoch leider noch nicht auf Anhieb auf einen Lösungsweg gestoßen. Zu mir: Ich bin Medizinstudentin, 24 Jahre alt und kenne mich nur noch aus Schulzeiten rudimentär mit HTML aus. (Haben damals von der 10. bis zur 11. Klasse mit phase5 Webseiten erstellt). Da ich für mein Medizinstudium und das bevorstehende Examen ein Online-Programm namens "Amboss" benutze, benötige ich eure Hilfe. Die ca. 860 Lernkarten würde ich mir gerne leserlich ausdrucken, da ich in Papierform um einiges besser lernen kann. Die Webseite ist auf Java basiert und beinhaltet diverse Frames.
Ich habe schon etliche Addons (wie Stylish/ Scripts / Styles / Print-Editoren) ausprobiert. Nur schafft es keine der Erweiterungen die Sprechblasen-Erweiterung "Bubbles" beim Ausdrucken mit darzustellen (z.B. in Klammern danebenstehend würde mir schon völlig ausreichen). :(
Ich würde mich über jedweder Hilfestellung sehr freuen.:oops:
Vielen Dank fürs Lesen! :)

Liebe Grüße
Charlotte

Hier der Code
Java:
<span class="icon no-float icon-tooltip bubble" miamed-tooltip="" tooltip-adjust="true" tooltip-delay="150" tooltip-hide-timeout="400" tooltip-append-to-body="true" tooltip-content="In%20einigen%20Lehrwerken%20wird%2017mg%2Fdl%20als%20Grenzwert%20angegeben%0A"></span>
 
Viktim

Viktim

Mit diesem JavaScript Code müsstest du dir die Texte ausgeben lassen können.
HTML:
var list= document.getElementsByClassName("bubble");
for (var i = 0; i < list.length; i++) {
  console.log(list[i].innerHTML);
}
Ich hab aber glaub ich noch nicht so ganz verstanden, was du machen willst :D
 
M

medizinstudentin

Hehe sorry mein Fehler!:oops::p Also wollte wissen ob es eine Möglichkeit gibt die Javascript Bubbles mit auszudrucken bzw. einfach mit zu extrahieren in Word (durch Copy & Paste z.B.) ohne jedes einzelne Bubble mit rauszukopieren.
upload_2017-1-30_15-22-38.png
upload_2017-1-30_15-23-8.png
 
X

Xyz1

Hallo,
auf Amboss steht, die Prüfungsfragen sind urheberrechtlich geschützt und jegliche Nutzung bedarf ausdrücklicher Genehmigung.
Weiterhin kann ich mich nicht kostenlos auf der Seite anmelden.
Zum Eigentlichen: Es wäre nicht das Problem, jegliche Informationen dieser Seite in jeglicher Form "zu beziehen" und in jeglicher Form zu drucken.
Ich weiß aber nicht, ob das gestattet ist. Wahrscheinlich nicht, deswegen wird keiner/niemand Hilfe anbieten können.
Falls du doch irgenwie etwas Genaues weißt, melde dich nochmal^^
Viele Grüße und so beim Lernen der "Bubbles" :D
 
M

medizinstudentin

Hallo,
auf Amboss steht, die Prüfungsfragen sind urheberrechtlich geschützt und jegliche Nutzung bedarf ausdrücklicher Genehmigung.
Weiterhin kann ich mich nicht kostenlos auf der Seite anmelden.
Zum Eigentlichen: Es wäre nicht das Problem, jegliche Informationen dieser Seite in jeglicher Form "zu beziehen" und in jeglicher Form zu drucken.
Ich weiß aber nicht, ob das gestattet ist. Wahrscheinlich nicht, deswegen wird keiner/niemand Hilfe anbieten können.
Falls du doch irgenwie etwas Genaues weißt, melde dich nochmal^^
Viele Grüße und so beim Lernen der "Bubbles" :D
Also, es geht mir nicht um die IMPP Prüfungsfragen (die Kreuzchen setze ich lieber Online :), sondern nur um die Lernkarten, die ja von Amboss sind). Habe bei Amboss mal angerufen gehabt, die hatten sogar überlegt eine Sammlung mit den 860 Lernkarten (bisher gibt es nur 120 Lernkarten im Buchformat) bereitzustellen, aber die Idee haben sie dann wieder verworfen, weil dafür mindestens 1000 Abnehmer gefunden werden müssten um einen Auftrag an die Druckerei erteilen zu können.
Die Mitarbeiterin mit der ich geredet habe war sehr zuvorkommend und meinte, dass die Lernkarten urheberrechtlich geschützt wären, ich aber dennoch per Copy&Paste mir die Lernkarten in Word einfügen dürfe, wenn ich dadurch besser lernen kann. Nur gehen damit die "Bubbles" verloren :p und dann wären wir wieder beim besagten Problem ;)
Aber klar ich kann Dich verstehen, und ich möchte hier niemanden zum "illegalen Handeln" verleiten. Hätte mich aber wie gesagt sehr gefreut wenn wir jemand eine Hilfestellung geben würde wie ich die "Bubbles"extrahieren kann :p. Meines Erachtens habe ich offiziell ein "OK" zum ausdrucken bekommen habe und da ich damit keinen Handel oder jedwedes anstellen, sondern nur zum lernen verwenden möchte.

Also bei mir steht auf der Seite (Achtung das soll jetzt keine Werbung sein):
"https://w**.miamed.de/amboss"
upload_2017-1-30_16-52-28.png
 
Zuletzt bearbeitet:
X

Xyz1

Gut, deine Kenntnisse Programmieren sind bei 0? (Selber gesagt!)
Du suchst eine JavaScript lösung oder etwas anderes?
Was soll sie machen, wie soll sie machen?
Ich würd komplett anders an die Sache herangehen.
Aber das Problem bleibt, dass ich das nicht Scannen kann und "dir beziehen"^^ denn das wäre nicht erlaubt.
Ich probiere mal gerade etwas und melde mich gleich nochmal.
Anmerkung: Der Link oben funktioniert nicht so ganz!
 
X

Xyz1

Ich hab doch gesagt, ich meld mich nochmal. Also installiere mal Greasemonkey 3.9
(das ist ein Addon für Firefox)
Und lege folgendes Benutzerskript fest:
Javascript:
// ==UserScript==
// @name        Uhrzeitenn
// @namespace   EinNamensraumm
// @description Macht ewas Nützliches
// @include     http://www.java-forum.org/*
// @version     1
// @grant       none
// ==/UserScript==
var aTexta = '';
var all = document.getElementsByTagName('*');
for (var i = 0, max = all.length; i < max; i++) {
  var elem = all[i];
  if (elem.tagName === 'ABBR' && elem.className.startsWith('DateTime')) {
    console.log(elem);
    aTexta += elem.attributes['data-datestring'].value;
    aTexta += '   ';
    aTexta += elem.attributes['data-timestring'].value;
    aTexta += '\n';
  }
}
alert(aTexta);
das dann eine Ausgabe wie folgt:
einFenster.PNG
und der Text in diesem "Fenster" kann kopiert werden.

Jetzt müsstest du dieses Skript nur noch für deine Seite anpassen. :)
(Wie gesagt, ich melde mich jetzt nicht an ;) )
 
X

Xyz1

Diese Seite ist auch "hartnäckig", versuch mal:
Javascript:
// ==UserScript==
// @name        Uhrzeitenn
// @namespace   EinNamensraumm
// @description Macht was nützliches
// @include     https://amboss.miamed.de/*
// @version     1
// @grant       none
// ==/UserScript==
window.addEventListener('load', function () {
  alert('Click ok wenn Seite fertig...');
  var aTexta = '';
  var all = document.getElementsByTagName('*');
  for (var i = 0, max = all.length; i < max; i++) {
    var elem = all[i];
    if (elem.tagName === 'BUTTON' && elem.className === 'LearningCard Expand inline responsive') {
      elem.click();
    }
    if (elem.tagName === 'SPAN' && elem.className.indexOf('bubble') !== - 1) {
      console.log(elem);
      var tippi = unescape(elem.attributes['tooltip-content'].value);
      aTexta += tippi;
      aTexta += '\n';
      elem.innerHTML = tippi;
    }
  }
  alert(aTexta);
}, false);
abstrakt.PNG
:)
(Anmerkung: Ich denke nicht, das das etwas Verbotenes wäre)
 
X

Xyz1

Ich muss noch etwas hinzufügen:
Das setzt den Inhalt dieser "Bubbles" dekodiert in das HTML der Seite an die richtige Stelle,
console.log(elem); UND alert(aTexta); UND var aTexta = ''; brauchst du nicht mehr, und
ich hoffe, dass das dann auch mitgedruckt wird (wird es wahrscheinlich, aber ich hab es nicht ausprobiert).

elem.click(); expandiert einfach nur alles, damit alles auf einen Blick.

Das alles läuft auf Benutzerseite.

Ich hab jetzt auch Zeit, auf die PN zu antworten^^
 
M

medizinstudentin

Das klappt immer noch nicht ganz irgendwie, könntest du mir bitte deine Abschlussversion hier einfügen? Bei deiner ursprünglichen Version, hatte er komische Formatierungsschwierigkeiten bezüglich der Umlaute, wie könnte man das beheben? :oops: Tut mir leid, dass ich soviel frage, bin aber total überfordert gerade. Vielen lieben Dank nochmal für alles! :D:)
Code:
// ==UserScript==
// @name        Uhrzeitenn
// @namespace   EinNamensraumm
// @description Macht was nützliches
// @include     https://amboss.miamed.de/*
// @version     1
// @grant       none
// ==/UserScript==
window.addEventListener('load', function () {
  alert('Click ok wenn Seite fertig...'); 
  var all = document.getElementsByTagName('*');
  for (var i = 0, max = all.length; i < max; i++) {
    var elem = all[i];
    if (elem.tagName === 'BUTTON' && elem.className === 'LearningCard Expand inline responsive') {
      elem.click();
    }
    if (elem.tagName === 'SPAN' && elem.className.indexOf('bubble') !== - 1) {  
      var tippi = unescape(elem.attributes['tooltip-content'].value);
      aTexta += tippi;
      aTexta += '\n';
      elem.innerHTML = tippi;
    }
  }
}, false);
 
X

Xyz1

Das klappt immer noch nicht ganz irgendwie, könntest du mir bitte deine Abschlussversion hier einfügen?
Das klappt deswegen nicht, weil du aTexta += tippi; usw. drin gelassen hast, und das JavaScript fehlerhaft war. Etwas nachdenken wäre nützlich^^
Final:
Javascript:
// ==UserScript==
// @name        Expand Bubbles
// @namespace   EinNamensraumm
// @description Macht ewas Nützliches
// @include     https://amboss.miamed.de/*
// @version     1
// @grant       none
// ==/UserScript==
window.addEventListener('load', function () {
  alert('Klicke auf OK wenn Seite fertig...');
  var all = document.getElementsByTagName('*');
  for (var i = 0, max = all.length; i < max; i++) {
    var elem = all[i];
    if (elem.tagName === 'BUTTON' && elem.className === 'LearningCard Expand inline responsive') {
      elem.click();
    }
    if (elem.tagName === 'SPAN' && elem.className.indexOf('bubble') !== - 1) {
      var htmlStr = '((' + decodeURIComponent(elem.attributes['tooltip-content'].value) + '))';
      var d = document.createElement('p');
      d.innerHTML = htmlStr;
      elem.parentNode.insertBefore(d, elem);
      elem.parentNode.removeChild(elem);
    }
  }
}, false);
abstrakt.PNG

Wegen des Umlauts... falls dich das interessiert...
http://stackoverflow.com/questions/2820249/base64-encoding-and-decoding-in-client-side-javascript
https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding

Und nicht wundern wegen der zwei ( ...
Ich hab da jetzt einfach (( und )) gesetzt, damit von normalen Klammern unterscheidbar.
Bis das
 
Viktim

Viktim

Was du auch machen könntest ist, mit rechtsklick dir den Seitenquelltext anzeigen zu lassen, den zu Kopieren, und da dann mit z.B. dem Befehl den ich ganz am Anfang geschrieben hab dir die Bubbles auszulesen :D
 
X

Xyz1

Was haben Umlaute mit Base64 zu tun?
Mensch, lies doch mal die komplette Seite von Mozilla, da ist auch eine Section The "Unicode Problem" dabei. Jedenfalls ist decodeURIComponent das gesuchte.

@Viktim : Zu kompliziert, ich hab sie jetzt so verstanden: Sie möchte die Seite öffnen und zum Lernen alles (in Word kopieren und) drucken.

Medizinern in Ausbildung helfe ich gern, schließlich möchte ich ja auch mal gehelft werden^^

Allerdings musst ich mich jetzt "illegalerweise" zweimal auf der Seite anmelden und eine Fakultät "vorgaukeln". In Java wäre das IllegalArgumentException, IllegalAccessException, UnsupportedOperationException usw. :D

Wäre das Thema denn gelöst?

Weiß zufällig jemand, wie ich Greasemonkey bei dieser komplexen Seite dazu bringen kann, bis alles komplett geladen ist warten?
 
T

thecain

Mensch, lies doch mal die komplette Seite von Mozilla, da ist auch eine Section The "Unicode Problem" dabei. Jedenfalls ist decodeURIComponent das gesuchte.
Mag sein, dass da ein Unicode Problem besteht. Mit Base64 hat das trotzdem nichts zu tun. Oder ist der Text auf der Website Base64 encoded?
 
M

medizinstudentin

Vielen lieben Dank an euch Alle! Und vor allem Danke an dich DerWissende.;) Ich kann mir das jetzt problemlos kopieren.Die Umlaute sind mit dem neuen Code jetzt auch richtig übertragbar. :oops:
 
X

Xyz1

Okay, es ist nur etwas schade, dass man bei den ca. 860 Lernkarten bis jetzt wahrscheinlich, so war gestern bei mir, auf neuladen klicken muss, damit das Script von Greasemonkey angestoßen wird. Und das alert ist vielleicht nicht notwendig, aber ich bin da nun nicht mehr angemeldet, kann nicht helfen.^^

Anmerkung: Print Edit ist auch ein super Addon zu empfehlen, mit dem man einzelne Frames/Divs drucken kann.
 
X

Xyz1

Da sich @Mediziner-Berlin hier angemeldet hat und dieses Thema beobachtet, habe ich nochmal 2 Std. damit verbracht und das Greasemonkey-Script angepasst:
Javascript:
// ==UserScript==
// @name        Expand Bubbles (auf Amboss)
// @namespace   EinNamensraumm
// @description Macht ewas Nützlichess
// @include     https://amboss.miamed.de/*
// @version     1
// @grant       none
// ==/UserScript==
// window.addEventListener('load', function () {
window.addEventListener('keyup', function (e) {
  var key = e.keyCode ? e.keyCode : e.which;
  if (key == 32) {
    console.log('Space pressed');
    var all = document.getElementsByTagName('*');
    for (var i = 0, max = all.length; i < max; i++) {
      var elem = all[i];
      if (elem.tagName === 'SPAN' && elem.className.indexOf('bubble') !== - 1) {
        var htmlStr = '((' + decodeURIComponent(elem.attributes['tooltip-content'].value) + '))';
        var d = document.createElement('p');
        d.innerHTML = htmlStr;
        elem.parentNode.insertBefore(d, elem);
        elem.parentNode.removeChild(elem);
      }
    }
  }
}, true);
// }, false);
Was macht es:
- Man ruft eine beliebige Lernkarte auf Amboss auf,
- man drückt die Space-Taste,
- und alle Tooltip-Bubbles werden automatisch ((erweitert)).

Beispiel:
Da innerhalb und außerhalb von Zellen verschiedene geladene Ionen (siehe auch: Elektrolyte) in unterschiedlicher Konzentration vorliegen, kommt es an Zellmembranen zu einer charakteristischen Ladungsverteilung – einem "Potential"

((Die Ladungsverteilung wird mittels des sogenannten Donnan-Gleichgewichts beschrieben. ))
.
Getestet mit Firefox und Greasemonkey :: Add-ons für Firefox .

Was soll das?
- Damit kann man dann alles in einem Aufwasch lesen oder drucken usw.
 
Thema: 

"tooltip bubbles" beim Ausdruck mit darstellen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben