我需要帮助使用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);
答案 0 :(得分:2)
你不能这样做。
如果出现javascript错误,您的代码(最后执行)将永远不会执行。
我已经找到远广来寻找解决方案,但却找不到它。
答案 1 :(得分:1)
eventSupported
功能出错,GM和jQuery 1.4。*目前无法共存。