Hola,
Soy nuevo en Greasemonkey.
¿Hay alguna forma de llamar a una función en otro script de usuario de Greasemonkey?
Gracias.
no, a menos que el otro script haga algún esfuerzo para exponer las API a través de algún medio.
No hay un método interno para hacerlo, pero hay una solución.
Script con función expuesta:
unsafeWindow.hello = hello;
function hello() {alert("hello world");}
Script para llamar a la función
hello();
Eso es lo esencial.
Por supuesto, eso también significa que se puede llamar desde el sitio web, no solo desde otros scripts de usuario.
Verdadero. Dale un parámetro de contraseña.
Tiene que ser la misma pestaña.
// ==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);
Los scripts
@tiansh , en este ejemplo, <strong i="6">@grant</strong> unsafeWindow
deshabilitó la protección de la zona de pruebas .
@pyhedgehog ¿Lo habías intentado? ¿Con GM 2/3?