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

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

DDD
DDD原创
2024-11-15 03:20:02849浏览

How can I execute a Greasemonkey script multiple times on the same page without a refresh?

在同一页面上多次注入 Greasemonkey 脚本

对于 Greasemonkey 和 JavaScript 的新用户来说,一个常见的要求是用户脚本需要可以多次执行,无需刷新页面。当使用 Ajax 发生请求(例如 Amazon 搜索)而不触发完整页面重新加载时,这种情况就变得至关重要。

解决方案:利用 waitForKeyElements() 实用程序

到waitForKeyElements() 实用程序提供了一个强大而简单的解决方案,有效地满足了这一需求。该实用程序监视指定的元素,并在该元素的内容发生更改时执行回调函数。下面是一个利用 jQuery 和 waitForKeyElements 修改 Amazon 搜索结果的完整脚本:

// @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) {
    jNode.prepend (
        '<div>

实现细节:

  • waitForKeyElements() 实用程序: 该实用程序检查 ID 为“atfResults”的元素是否存在。找到后,它会执行 addCustomSearchResult() 函数。
  • addCustomSearchResult() 函数: 此函数通过注入您的自定义内容来修改亚马逊搜索结果。在此示例中,它添加了一个自定义 div,其中包含文本“改为购买我的东西!”到每个结果行的开头。

使用此解决方案,您现在可以在同一页面上多次执行 Greasemonkey 脚本而无需刷新,从而为您提供更大的灵活性和对浏览器交互的控制。

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

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