修改站点';带Greasemonkey的jQuery代码

修改站点';带Greasemonkey的jQuery代码,jquery,greasemonkey,Jquery,Greasemonkey,如何使用Greasemonkey修改或覆盖站点的jQuery代码。该站点已经加载了jQuery库,我想更改/修改jQuery自定义代码。如何用Greasemonkey覆盖它 例如,我希望覆盖此代码(由网站编写): 使用此(我的覆盖): 具体来说,您将覆盖代码放在用户脚本中的什么位置,以及我是否将其包装在文档中。准备好了吗?根据Greasemonkey的常见问题解答 Greasemonkey允许添加JavaScript 代码(称为“用户脚本”)到任何 网页,当其HTML 代码已加载 这不允许您替换

如何使用Greasemonkey修改或覆盖站点的jQuery代码。该站点已经加载了jQuery库,我想更改/修改jQuery自定义代码。如何用Greasemonkey覆盖它

例如,我希望覆盖此代码(由网站编写):

使用此(我的覆盖):


具体来说,您将覆盖代码放在用户脚本中的什么位置,以及我是否将其包装在文档中。准备好了吗?

根据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();它本身就可以工作。谢谢