Hai, yang di sana,
Saya baru mengenal Greasemonkey.
Apakah ada cara untuk memanggil fungsi di skrip pengguna Greasemonkey lain?
Terima kasih.
tidak, kecuali jika skrip lain berusaha untuk mengekspos API melalui beberapa cara.
Tidak ada metode internal untuk melakukannya, tetapi ada solusi.
Skrip dengan fungsi terbuka:
unsafeWindow.hello = hello;
function hello() {alert("hello world");}
Skrip untuk memanggil fungsi
hello();
Itulah intinya.
tentu saja itu juga berarti dapat dipanggil dari situs web, bukan hanya skrip pengguna lain
Benar. Berikan parameter kata sandi.
Itu harus tab yang sama.
// ==UserScript==
// <strong i="5">@name</strong> Test call 1
// <strong i="6">@namespace</strong> https://github.com/tiansh/
// <strong i="7">@include</strong> http://example.com/
// <strong i="8">@version</strong> 1
// <strong i="9">@grant</strong> unsafeWindow
// ==/UserScript==
unsafeWindow.x = function (str, callback) {
console.log('%o.x: %o', this, arguments);
alert('x says: ' + str);
callback(str + 'from x');
};
// ==UserScript==
// <strong i="12">@name</strong> Test call 2
// <strong i="13">@namespace</strong> https://github.com/tiansh/
// <strong i="14">@include</strong> http://example.com/
// <strong i="15">@version</strong> 1
// <strong i="16">@grant</strong> unsafeWindow
// ==/UserScript==
setTimeout(function () {
unsafeWindow.x('hello', function (nstr) {
console.log('%o.y: %o', this, arguments);
alert('y says: ' + nstr);
});
}, 0);
@the8472 skrip di halaman dari situs web tidak dapat memanggil fungsi Anda karena perlindungan kotak pasir.
@tiansh , dalam contoh ini perlindungan kotak pasir dinonaktifkan oleh <strong i="6">@grant</strong> unsafeWindow
.
@pyhedgehog Sudahkah Anda mencoba? Dengan GM 2 / 3?