Greasemonkey: ¿Cómo llamar a una función en otro script de usuario de Greasemonkey?

Creado en 28 oct. 2016  ·  8Comentarios  ·  Fuente: greasemonkey/greasemonkey

Hola,

Soy nuevo en Greasemonkey.
¿Hay alguna forma de llamar a una función en otro script de usuario de Greasemonkey?

Gracias.

Todos 8 comentarios

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?

¿Fue útil esta página
0 / 5 - 0 calificaciones