修改站点';带Greasemonkey的jQuery代码
如何使用Greasemonkey修改或覆盖站点的jQuery代码。该站点已经加载了jQuery库,我想更改/修改jQuery自定义代码。如何用Greasemonkey覆盖它 例如,我希望覆盖此代码(由网站编写): 使用此(我的覆盖):修改站点';带Greasemonkey的jQuery代码,jquery,greasemonkey,Jquery,Greasemonkey,如何使用Greasemonkey修改或覆盖站点的jQuery代码。该站点已经加载了jQuery库,我想更改/修改jQuery自定义代码。如何用Greasemonkey覆盖它 例如,我希望覆盖此代码(由网站编写): 使用此(我的覆盖): 具体来说,您将覆盖代码放在用户脚本中的什么位置,以及我是否将其包装在文档中。准备好了吗?根据Greasemonkey的常见问题解答 Greasemonkey允许添加JavaScript 代码(称为“用户脚本”)到任何 网页,当其HTML 代码已加载 这不允许您替换
具体来说,您将覆盖代码放在用户脚本中的什么位置,以及我是否将其包装在文档中。准备好了吗?根据Greasemonkey的常见问题解答 Greasemonkey允许添加JavaScript 代码(称为“用户脚本”)到任何 网页,当其HTML 代码已加载 这不允许您替换在Greasemonkey脚本之前执行的任何代码。它确实允许您覆盖将来将访问或运行的任何内容,如全局变量、对象属性和函数。我总是这样想:“一旦页面加载,我想更改X、Y和Z”。使用您的示例,如果该代码位于如下函数中:
function ShowItems() {
$("div.fadeList").each(function() {
$(this).children('ul').fadeIn();
});
}
$("div.fadeList ul).show();
您可以覆盖它,以便后续调用将运行您的代码
function ShowItems() {
$("div.fadeList").each(function() {
$(this).children('ul').show();
});
}
如果您只是想根据自己的喜好更改页面,您可以这样做:
function ShowItems() {
$("div.fadeList").each(function() {
$(this).children('ul').fadeIn();
});
}
$("div.fadeList ul).show();
如果要解除悬停事件的绑定,然后将其与您的事件重新绑定,该怎么办
$('.side-nav-flyout').unbind('hover').hover(function() {
$(this).children('ul').show();
}, function() {
$(this).children('ul').hide();
});
如果您对完全破坏页面的
.fadeIn()
和.fadeOut()
方法没有意见,您可以始终采用“暴力”方法:
unsafeWindow.$.fn.fadeIn = unsafeWindow.$.fn.show;
unsafeWindow.$.fn.fadeOut = unsafeWindow.$.fn.hide;
我觉得这是离题了。你问的是如何使用浏览器插件,而不是你需要什么jQuery来执行你所寻找的特定操作。它与jQuery和greasemonkey都有关系,这是怎么回事?我知道jQuery/greasemonkey是如何工作的,但我想覆盖网站正在进行的当前jQuery调用。我应该把覆盖代码放在哪里?现在您已经更新了示例代码,只需将替换代码放在用户脚本中即可。我不相信您需要将其包装在document.ready()中,但我不能肯定。我的观点是,您将无法阻止在document.ready()上运行设置为运行的其他代码。您可以编辑以后的执行。谢谢。。。我确实试过了,但它没有覆盖它。好主意。尽管上面的代码不起作用,解绑是答案。我最终使用$('.side nav弹出按钮').unbind();它本身就可以工作。谢谢