我正在为游戏创建一个用户脚本,可以实时修改页面的某些部分,以帮助用户知道他们必须等待多长时间才能执行某些操作。
我遇到的问题是游戏中已经内置了一些AJAX,它每隔三秒调用jQuery.getJSON()
函数来获取更新信息。我的脚本需要让最终用户看起来好像页面是实时更新,而不是每3秒更新一次。以及添加额外信息。不添加额外请求(游戏所有者不会喜欢)。
为此,我需要覆盖页面的默认行为,我需要更改jQuery.getJSON()
调用的回调函数以添加我的功能。或至少完全禁用它,以便我可以写一个新的。它并不像为旧名称分配新函数那么容易,因为它没有名称,只是在jQuery.getJSON()
调用中构建函数。这可能吗?
页面脚本包含在一个单独的.js文件btw中,如果这有任何区别。
答案 0 :(得分:1)
如果将jQuery.getJSON()调用分配给变量,它将返回一个jqXHR对象,然后可以通过添加或更改其回调来修改该对象。
如果它没有作为变量公开,而是简单地这样调用
... js blah ...
jQuery.getJSON("myurl",function(){
more blah
});
... more blah ...
...然后我相信你在没有桨的情况下上了一条小溪,因为它变成了一个没有句柄的匿名函数调用。在这一点上,唯一的方法是尝试通过在第一个脚本上加载另一个脚本来覆盖,但我真的不确定离开浏览器环境会有多稳定。
有关$ .ajax()系统如何工作的更多详细信息,请参阅http://api.jquery.com/jQuery.getJSON/和http://api.jquery.com/Types/#jqXHR的jQuery参考。