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

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

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

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

Injecting Greasemonkey Script Multiple Times on the Same Page

For users new to Greasemonkey and JavaScript, a common requirement arises where a userscript needs to be executed multiple times without a page refresh. This scenario becomes essential when a request, such as an Amazon search, occurs using Ajax without triggering a complete page reload.

Solution: Utilizing waitForKeyElements() Utility

To address this need effectively, the waitForKeyElements() utility offers a robust and simple solution. This utility monitors a specified element and executes a callback function whenever the element's content changes. Below is a complete script that leverages jQuery and waitForKeyElements to modify Amazon search results:

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

Implementation Details:

  • waitForKeyElements() Utility: This utility checks for the presence of an element with the ID "atfResults." When found, it executes the addCustomSearchResult() function.
  • addCustomSearchResult() Function: This function modifies the Amazon search results by injecting your custom content. In this example, it adds a custom div with the text "Buy my stuff, instead!" to the beginning of each result row.

Using this solution, you can now execute your Greasemonkey script multiple times on the same page without a refresh, providing you with greater flexibility and control over your browser interactions.

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

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