Existe-t-il un moyen de désactiver tous les autres scripts Java autres que le mien avec Grease Monkey

J’ai besoin d’aide pour lancer un script Grease Monkey avec JQuery Script sur un site endommagé.

J’essaie d’exécuter le script GM suivant, mais la page sur laquelle je souhaite travailler contient une erreur JS et mon JS n’est pas exécuté.

// ==UserScript== // @name BILL INFO PAGE ALTER // @namespace http://jenkinslaw.org // @description Alter the web page in order to pretty print // @include http://www.legis.state.pa.us/cfdocs/billinfo/bill_history.cfm?* // @require http://code.jquery.com/jquery-1.4.2.min.js // ==/UserScript== */ (function() { //Make a copy of the bill table var bill_table = $('.main_table').clone(); //empty the whole lot $(body).empty(); //append the bill back to the dom. $(body).append(bill_table); }()); 

Merci!

Le progrès:

Je suis d’accord avec @mkoryak, c’est un problème impossible à résoudre avec GM. Donc je laisse tomber et utilise une extension Firefox à la place (j’espère que cela ne rencontrera pas le même problème).

Je suivrai l’exemple que j’ai vu dans un autre article sur OS: Comment utiliser jQuery dans Firefox Extension

J’ai réussi à le faire fonctionner, mais avec une légère modification par rapport à l’exemple présenté:

(En passant, j’ai utilisé l’ assistant d’extension de Firefox pour obtenir facilement et rapidement un cadre de base de la configuration des extensions).

 jQuery.noConflict(); (function($){ billinfo = new function(){}; billinfo.log = function(){ Firebug.Console.logFormatted(arguments,null,"log"); }; billinfo.run = function(doc,aEvent) { // Check for website if(!doc.location.href.match(/^http:\/\/(.*\.)?legis\.state\.pa\.us\/cfdocs\/billinfo\/bill_history\.cfm\?(.*)?$/i)) return; // Check if already loaded if(doc.getElementById("plugin-billinfo")) return; // Setup this.win = aEvent.target.defaultView.wrappedJSObject; this.doc = doc; //Make a copy of the bill table bill_table = $('.main_table', doc).clone(); //empty the whole lot $('body', doc).empty(); //append the bill back to the dom. $('body', doc).append(bill_table); }; // Bind Plugin var delay = function(aEvent){ var doc = aEvent.originalTarget; setTimeout(function(){ billinfo.run(doc,aEvent); },1); }; var load = function(){ gBrowser.addEventListener("DOMContentLoaded", delay, true); }; window.addEventListener("pageshow", load, false) })(jQuery); 

Vous ne pouvez pas le faire.

S’il y a une erreur javascript, votre code (qui s’exécute en dernier) ne s’exécutera jamais.

J’ai cherché loin la solution, mais je n’ai jamais réussi à la trouver.

GM et jQuery 1.4. * eventSupported actuellement pas en raison d’une erreur dans la fonction eventSupported .
Par conséquent, vous pouvez utiliser la version 1.3. * JQuery ou inclure une version 1.4.2 modifiée directement dans votre script, telle que celle suggérée ici .
Puisque vous avez choisi de prendre le chemin d’extension, cela ne vous concerne pas, mais je l’affiche quand même pour ceux qui ont des problèmes similaires et qui pourraient tomber par la suite.