javascript ajax greasemonkey

javascript - Ejecute el script de Greasemonkey en la misma página, varias veces?



ajax (2)

Soy totalmente nuevo en Greasemonkey, JavaScript, de hecho, todo lo de la interfaz de usuario.

Requisito: GS corre a cargo de GS una vez que se carga la página. Sin embargo, necesito ejecutar el mismo script varias veces sin actualizar

Caso de uso: por ejemplo, la búsqueda de Amazon.com ocurre con Ajax. Necesito insertar un elemento personalizado en los resultados de búsqueda.

Necesito inyectar mi contenido en search-results-div junto con los resultados cada vez que se realiza una búsqueda en la misma página (no hay actualización de página)

Mi script actual solo se ejecuta con la actualización de la página.

Espero que la explicación anterior sea clara. Por favor ayuda.


La forma más simple y más robusta es usar la utilidad waitForKeyElements () .

Aquí hay un script completo que usa jQuery y waitForKeyElements para alterar los resultados de búsqueda de Amazon:

// ==UserScript== // @name _Amazon Search, alter results // @include http://www.amazon.com/s/* // @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js // @require https://gist.github.com/raw/2625891/waitForKeyElements.js // @grant GM_addStyle // ==/UserScript== /*- The @grant directive is needed to work around a design change introduced in GM 1.0. It restores the sandbox. */ function addCustomSearchResult (jNode) { //***** YOUR CODE HERE ***** jNode.prepend ( ''<div id="result_000" class="fstRow">Buy my stuff, instead!</div>'' ); } waitForKeyElements ("#atfResults", addCustomSearchResult);


Puede usar el evento DOMNodeInserted para llamar su devolución de llamada, por ejemplo:

document.addEventListener(''DOMNodeInserted'', function() { alert(''hi'') }, false);

Tenga en cuenta que el evento se desencadenará por cualquier cambio en la estructura de la página, por lo que deberá verificar que esté orientando el cambio correcto.