Maison >interface Web >js tutoriel >Comment puis-je exécuter un script Greasemonkey plusieurs fois sur la même page sans actualiser ?

Comment puis-je exécuter un script Greasemonkey plusieurs fois sur la même page sans actualiser ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-16 11:12:021045parcourir

How Can I Execute a Greasemonkey Script Multiple Times on the Same Page Without Refreshing?

Exécuter des scripts Greasemonkey plusieurs fois par page

En tant que nouvel utilisateur de Greasemonkey et du développement Web, vous rencontrez un défi : exécuter un script utilisateur multiple fois sur la même page sans actualiser la page. Cela est nécessaire pour des scénarios tels que les recherches Amazon basées sur Ajax, dans lesquelles vous souhaitez insérer un élément personnalisé dans les résultats de recherche au fur et à mesure qu'ils apparaissent.

La solution efficace recommandée par les utilisateurs expérimentés est la waitForKeyElements() utilitaire. Il vous permet de spécifier un élément cible sur la page et d'enregistrer une fonction de rappel qui s'exécutera à chaque fois que l'élément cible est ajouté ou modifié.

Pour démontrer son utilisation, considérons un script modifié pour modifier les résultats de recherche Amazon. :

// Greasemonkey script to alter Amazon search results
// ==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==

function addCustomSearchResult (jNode) {
    // Inject your custom element
    jNode.prepend (
        '<div>

Voici comment cela fonctionne :

  • La fonction waitForKeyElements() surveille l'élément cible (#atfResults dans ce cas) et appelle le rappel (addCustomSearchResult) chaque fois que l'élément est ajouté ou modifié.
  • Dans la fonction de rappel, vous pouvez injecter votre contenu personnalisé dans le div des résultats de recherche.
  • Étant donné que ce processus se produit sans actualisation de page, votre L'élément personnalisé apparaîtra dans les résultats de recherche à chaque fois qu'une nouvelle requête Ajax est effectuée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn