Issue: jQuery Conflict in Greasemonkey 1.0
Since the advent of Greasemonkey 1.0, users have encountered conflicts between jQuery libraries in Greasemonkey scripts and on web pages. The newly introduced @grant keyword, intended to enhance security, has caused this issue due to compatibility concerns.
The existing @require metadata, which enables the inclusion of external libraries like jQuery, now faces limitations in sandboxed Greasemonkey scripts. This conflict hinders the proper execution of scripts when both the page and the script utilize jQuery.
Solution: Sandbox Reactivation
To address this issue, users must reactivate the Greasemonkey sandbox by specifying a @grant value other than "none." Modifying the Metadata Block of the script with the following lines will restore the sandbox:
// @grant GM_addStyle // @grant GM.getValue // ==/UserScript== /*- The @grant directive is needed to work around a design flaws introduced in GM 1.0 and again in GM 4.0. It restores the sandbox. */
By granting specific privileges, this approach effectively restores the sandbox and allows Greasemonkey scripts to run harmoniously alongside page-based jQuery instances. Additionally, it ensures compatibility with advanced scripting engines like Tampermonkey and Violentmonkey, which offer similar sandbox functionality.
The above is the detailed content of How to Resolve jQuery Conflicts in Greasemonkey 1.0?. For more information, please follow other related articles on the PHP Chinese website!