Heise.de Forum: all comments on one page v2

All comments on one page, iReply, quick-vote, user-scores.

< Feedback on Heise.de Forum: all comments on one page v2

Question/comment

§
Posted: 2017-11-17
Edited: 2018-05-26

Greasemonkey 4 Kompatibilität

Da Greasemonkey seine API in Version 4 grundlegend geändert hat muss das Skript geringfügig angepasst werden.

Die Log Funktion muss angepasst werden, weil GM_log nicht mehr vorhanden ist und die Browserweiche im Skript kein Ausweichen auf das generische console.log vorsieht.

setLocalValue und getLocalValue müssen angepasst werden, weil die GM_setValue und _getValue Funktionen jetzt Methoden des GM Objekts sind. Außerdem gibt GM.getValue nur ein Promise zurück, bedarf also noch des await Keywords davor.

Die Aufrufe von GM_xmlhttpRequest lassen sich gleichermaßen auf GM.xmlHttpRequest umschreiben.

Für Kompatibilität mit alten Greasemonkey Versionen und alternativen UserScript Erweiterungen kann man das GM4 polyill einbinden.

Und die Grants müssen angepasst werden auf das neue GM. statt GM_ Format.

Wenn ich jetzt nichts übersehen habe, dann müsste das Skript im Anhang alle diese Änderungen umsetzen.

//EDIT: Hab noch nen Fehler bei der async/await Umsetzung gehabt. Skript geupdated und sollte jetzt funktionieren. //EDIT2018-05-26: Ich hoffe jetzt alle Skriptfehler erwischt zu haben. Außerdem habe ich das autoQuote Feature repariert/ersetzt. Statt nach dem Laden des IFrame den Zitat einfügen Knopf automatisch zu drücken laden wir jetzt einfach direkt die "Zitat" URL in den IFrame, dann macht das Forum das schon von ganz alleine \o/ Den Antwort-Iframe hab ich jetzt auch repariert. Alles überflüssige Heise-Layout fliegt beim laden automatisch raus und nur das Antwort Formular bleibt im IFrame sichtbar. (Das war schon immer so, hat nur nicht mehr funktioniert)

jn 2Author
§
Posted: 2017-11-19

Danke für deine Arbeit, aber das funktioniert leider nicht in meinem Palemoon mit Greasemonkey 3:

ReferenceError: assignment to undeclared variable GM        gm4-polyfill.js:28:2
Object.entries is not a function         gm4-polyfill.js:71:0

Mal schauen, wann ich dazu komme, das umzusetzen. Habe Firefox57 noch nicht ausprobiert und deswegen noch keinen Bedarf an GM4. Aber wenn ich so sehe, was dann alles nicht mehr geht, ist das Interesse nicht so groß, das selber einzusetzen (außer zum Testen) ;-)

§
Posted: 2017-11-22

Vielen Dank Benedikt!

§
Posted: 2017-11-23

Perfekt, vielen Dank! Funktioniert im FF57 und GM4 super.

§
Posted: 2017-12-09
ReferenceError: assignment to undeclared variable GM        gm4-polyfill.js:28:2
Object.entries is not a function         gm4-polyfill.js:71:0

Object.entries ist Teil von ES2017 und in Firefox seit Version 47 unterstützt. Wie der JavaScript Support bei PaleMoon aussieht dazu kann ich nichts sagen.

Der ReferenceError macht noch weniger Sinn. Das polyfill skript hat kein use strict und dementsprechend sollten "automatische Globale Variablen" funktionieren. Ein var vor die Zuweisung und Deklaration setzen sollte dann aber auch im strict mode Abhilfe schaffen.


Bei mir funktionierte das AJAX Voting mit Greasemonkey 4 noch nicht, ich musste die Referenz auf "GM_log" entfernen, dann funktioniert auch das wieder.

Tatsache.
typeof liefert selbst für undefinierte Variablen einen String zurück, nämlich "undefined" und der String selbst ist natürlich nicht undefined :open_mouth:

Korrekterweise muss das undefined in dem if also in Anführungszeichen gesetzt sein:

else if(typeof(GM_log) != "undefined") 

Das Ausweichen auf console.log ist im Original GM3 Skript leider auch schon kaputt.

§
Posted: 2018-05-26

Weitere Änderungen:

  1. AutoQuote Feature repariert (im Original wird der Antwort Link geladen und falls autoQuote gesetzt ist wird der Zitat Knopf im Antwort Fenster automatisch gedrückt - in meiner neuen Fassung wird stattdessen direkt die Zitat-URL im IFrame geladen)
  2. Antwort-IFrame-aufräumen Feature wiederhergestellt. (Im Antwort-IFrame wurde die gesamte Antwort-Webseite geladen weil das Aufräum-Skript nicht mehr im richtigen Kontext gearbeitet hat, das ist jetzt repariert und es werden wieder alle nicht-notwendigen HTML Elemente entfernt)

Post reply

Sign in to post a reply.