Greasemonkey: V4 @match verhält sich anders als V3 und TamperMonkey

Erstellt am 15. Nov. 2017  ·  8Kommentare  ·  Quelle: greasemonkey/greasemonkey

Mein Skript hat folgende Einträge (unter diesen bereinigten Intranetadressen):

// <strong i="6">@match</strong>        http://*.some-net.net/*
// <strong i="7">@match</strong>        http://*.some-net.net/*
// <strong i="8">@match</strong>        https://*.some-othernet.net/*
// <strong i="9">@match</strong>        https://*.some-othernet.net/*

Auf V3/tampermonkey funktioniert es für alle folgenden Adressenbeispiele (sowohl http als auch https)

[1] service.some-net.net
[2] service.some-othernet.net
[3] service.some-net. Netz: 1234
[4] service.some-othernet. Netz: 1234
[5] service.kunde.irgendein-netz. Netz: 1234
[6] service.customer.location.some-net.net

Allerdings funktioniert auf V4 [3][4] und [5] nicht. Für [3] bestand die Lösung darin, diese auch passend zum Port hinzuzufügen:

// <strong i="23">@match</strong>        http://*.some-net.net:*/*
// <strong i="24">@match</strong>        http://*.some-net.net:*/*
// <strong i="25">@match</strong>        https://*.some-othernet.net:*/*
// <strong i="26">@match</strong>        https://*.some-othernet.net:*/*

Was [5] betrifft, habe ich dies versucht, aber selbst es hilft nicht

// <strong i="30">@match</strong>        http://*.*.some-net.net:*/*
// <strong i="31">@match</strong>        http://*.*.some-net.net:*/*
// <strong i="32">@match</strong>        https://*.*.some-othernet.net:*/*
// <strong i="33">@match</strong>        https://*.*.some-othernet.net:*/*

Und das macht für mich keinen Sinn, da ich [6] nur am ersten (ursprünglichen) Regelsatz arbeite.

Alle 8 Kommentare

Die offizielle Dokumentation ist knapp und erwähnt Ports überhaupt nicht. Wird beim Fixieren unbedingt einen Test einschließen, um Regressionen zu vermeiden.

Das heißt, den neuen/alten Code vergleichen:

Mir ist unklar, wie das passiert ist, es hat sich nicht geändert.

Nun, vielleicht hat sich etwas an der Methode geändert, die zum Abrufen der aktuellen URL verwendet wird. Jeder mit neuem Firefox hat dieses Problem, für andere, die altes FF/Chrome verwenden, funktioniert es.
Als ich XPI ändern wollte, um einige Drucke hinzuzufügen, stellte ich leider fest, dass es signiert werden muss ....

Es gibt einen Bugzilla über Match und Ports. Nicht sicher, was die Auflösung war. Werde mal schauen ob ich es finde.

Buzilla auf Match und Ports. Hier .

Ok, vor 3,x Tagen haben wir nsIURI verwendet, das separat host , port und hostport hatte. Jetzt müssen wir eine URL verwenden, die immer noch etwas namens host hat – aber es bedeutet hostport . Wir müssen hostname verwenden.

Steht nicht in direktem Zusammenhang mit der Problemfunktionalität, garantiert aber die Kompatibilität mit der FF-Implementierung. Sollte diese API implementiert werden.

https://bugzilla.mozilla.org/show_bug.cgi?id=1395278

Dieser Fix sollte in 4.1beta6 enthalten sein; Das Testen und Bestätigen wäre sehr wünschenswert!

https://addons.mozilla.org/firefox/downloads/file/800957/greasemonkey-4.1beta6-an+fx.xpi?src=devhub

Jetzt überprüft und scheint richtig zu funktionieren. Danke!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen