有没有办法禁用除Grease Monkey以外的所有其他Java脚本

时间:2010-04-21 18:33:18

标签: jquery firefox greasemonkey

我需要帮助使用JQuery Script运行Grease Monkey以在破损的站点上运行。

我正在尝试运行以下GM脚本,但我希望它处理的页面有一个JS错误,我的JS没有被执行。

// ==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);

}());

谢谢!

d

进展:

我同意@mkoryak这是GM无法解决的问题。所以我放弃它并使用Firefox扩展(希望它不会遇到同样的问题)。

我将按照我在OS上的另一篇文章中看到的示例: How to use jQuery in Firefox Extension

我能够让它正常工作,但稍微修改了一下显示的示例:

(另外,我使用Firefox Extension Wizard轻松快速地获得了扩展设置的基本框架。

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);

2 个答案:

答案 0 :(得分:2)

你不能这样做。

如果出现javascript错误,您的代码(最后执行)将永远不会执行。

我已经找到远广来寻找解决方案,但却找不到它。

答案 1 :(得分:1)

由于eventSupported功能出错,GM和jQuery 1.4。*目前无法共存。
因此,您可以直接在脚本中使用1.3。* jQuery或包含修改后的1.4.2版本,例如建议的here。 由于您已选择采用扩展路径,这与您无关,但我仍然会将此发布给其他类似问题的人,这些问题将来可能偶然发现。