首页 >web前端 >js教程 >如何在同一页面多次执行Greasemonkey脚本而不刷新?

如何在同一页面多次执行Greasemonkey脚本而不刷新?

Susan Sarandon
Susan Sarandon原创
2024-11-16 11:12:021047浏览

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

每页多次执行 Greasemonkey 脚本

作为 Greasemonkey 和 Web 开发的新用户,您会遇到一个挑战:多次运行用户脚本在同一页面上多次,无需刷新页面。这对于 Ajax 驱动的亚马逊搜索等场景是必要的,您的目标是在搜索结果出现时将自定义元素插入到搜索结果中。

经验丰富的用户推荐的有效解决方案是 waitForKeyElements() 实用性。它允许您在页面上指定目标元素并注册一个回调函数,该函数将在每次添加或修改目标元素时执行。

为了演示其用法,让我们考虑一个用于更改亚马逊搜索结果的修改脚本:

// 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>

它的工作原理如下:

  • waitForKeyElements()函数监视目标元素(在本例中为#atfResults)并调用回调每当添加或修改元素时,您可以使用回调函数 (addCustomSearchResult)。
  • 在回调函数中,您可以将自定义内容注入到搜索结果 div 中。
  • 由于此过程发生时无需刷新页面,您的每次发出新的 Ajax 请求时,自定义元素都会出现在搜索结果中。

以上是如何在同一页面多次执行Greasemonkey脚本而不刷新?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn