Greasemonkey: V4 @match berperilaku berbeda dari V3 dan TamperMonkey

Dibuat pada 15 Nov 2017  ·  8Komentar  ·  Sumber: greasemonkey/greasemonkey

Skrip saya memiliki entri berikut (dibersihkan pada itu adalah alamat intranet):

// <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/*

Pada V3/tampermonkey ini berfungsi untuk semua contoh alamat berikut (baik http dan https)

[1] service.some-net.net
[2] service.some-othernet.net
[3] service.some-net. bersih:1234
[4] service.some-othernet. bersih:1234
[5] service.customer.some-net. bersih:1234
[6] service.customer.location.some-net.net

Namun pada V4 [3][4] dan [5] tidak berfungsi. Untuk perbaikan [3] adalah menambahkan yang cocok dengan port juga:

// <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:*/*

Adapun [5] saya mencoba ini, tetapi bahkan tidak membantu

// <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:*/*

Dan ini tidak masuk akal bagi saya karena [6] bekerja pada aturan pertama (asli) yang ditetapkan sendiri.

Semua 8 komentar

Dokumentasi resminya singkat dan tidak menyebutkan port sama sekali. Pastikan untuk menyertakan tes saat memperbaiki, untuk mencegah regresi.

Yang mengatakan membandingkan kode baru/lama:

Saya tidak jelas bagaimana ini terjadi, itu tidak berubah.

Yah, mungkin ada yang berubah dalam metode yang digunakan untuk mendapatkan URL saat ini. Semua orang dengan Firefox baru memiliki masalah ini, untuk orang lain yang menggunakan FF/Chrome lama itu berfungsi.
Sayangnya ketika saya ingin memodifikasi XPI untuk menambahkan beberapa cetakan saya menemukan bahwa itu perlu ditandatangani....

Ada Bugzilla tentang pertandingan dan port. Tidak yakin apa resolusi itu. Akan melihat apakah saya dapat menemukannya.

Buzilla pada pertandingan dan port. Di sini .

Oke, kembali dalam 3.x hari kami menggunakan nsIURI , yang secara terpisah memiliki host , port , dan hostport . Sekarang kita harus menggunakan URL yang masih memiliki sesuatu yang disebut host -- tetapi itu berarti hostport . Kita perlu menggunakan hostname .

Tidak terkait langsung dengan fungsionalitas masalah, tetapi menjamin kompatibilitas dengan implementasi FF. Seharusnya API tersebut diimplementasikan.

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

Perbaikan ini harus dalam 4.1beta6; menguji dan mengonfirmasi ini akan sangat dihargai!

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

Diperiksa sekarang dan tampaknya berfungsi dengan baik. Terima kasih!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat