Javascript 在第一个函数完成时执行第二个函数,不带回调参数
背景:我正在通过VWO为一个网站运行A/B测试。我可以编写一个在页面加载时运行的脚本,但在页面加载后,除了在JS中“覆盖”(例如删除div、更改CSS属性、追加div)之外,我无法访问任何网站先前存在的脚本或以任何方式更改其代码 问题:加载页面时,出现一个空的Javascript 在第一个函数完成时执行第二个函数,不带回调参数,javascript,jquery,html,css,events,Javascript,Jquery,Html,Css,Events,背景:我正在通过VWO为一个网站运行A/B测试。我可以编写一个在页面加载时运行的脚本,但在页面加载后,除了在JS中“覆盖”(例如删除div、更改CSS属性、追加div)之外,我无法访问任何网站先前存在的脚本或以任何方式更改其代码 问题:加载页面时,出现一个空的。页面的其他地方有一个。在RequestPriceInfo()中,函数根据页面上的某些表单字段值将HTML输出到div#priceinfo。它还附加了一个“order”按钮(实际上它根本不是一个按钮,而是一个嵌套在锚标记中的图像)。我试图使
。页面的其他地方有一个
。在RequestPriceInfo()
中,函数根据页面上的某些表单字段值将HTML输出到div#priceinfo
。它还附加了一个“order”按钮(实际上它根本不是一个按钮,而是一个嵌套在锚标记中的图像)。我试图使用JQuery的attr()
函数更改“按钮”图像的源代码
进展:无。我尝试过使用$('a#requestPrice')。单击(function(){…})
但更改图像的源代码不起作用,我想这是因为当单击a#requestPrice
并运行我的函数时,内容尚未立即加载到页面上。我需要一种方法来告诉RequestPriceInfo()
何时被激发并完成,但是RequestPriceInfo()
上没有回调参数,我没有权限修改脚本并添加一个
可能有用的信息:有一个变量,priceRequested
,当运行RequestPriceInfo()
时,该变量会从false变为true。虽然我没有意识到这个解决方案会很优雅,但使用Object.prototype.watch()
来监视变量似乎不合理,但我已经没有什么想法了
如何检测RequestPriceInfo()
何时已完成执行我的函数,而无需编辑函数以添加回调参数?以下是一种方法
var oldRequestPrice = RequestPriceInfo;
RequestPriceInfo = function(){
oldRequestPrice();
// Function completed, handle here
}
编辑
由于该问题似乎暗示RequestPriceInfo
是一个异步API调用,请看一下这个问题:
这将跟踪页面上发生的所有Ajax请求。您可以选择您需要的一个,并在成功后启动您的函数/代码。使用CSS如何。。。您的脚本可以向
添加一个类,比如
。然后,在CSS中,您将隐藏#priceInfo.newButton的img,并将新图像作为锚定的背景图像插入。仍然假定它是同步的。。函数名几乎意味着一个请求
我想如果它是异步的,OP可以相应地更改函数(通过添加。然后
或通过将回调传递到oldRequestPrice
)做什么?这是一个ajax调用吗?能截获ajax呼叫吗?谢谢!这是一个非常有效的解决方案。