Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在第一个函数完成时执行第二个函数,不带回调参数_Javascript_Jquery_Html_Css_Events - Fatal编程技术网

Javascript 在第一个函数完成时执行第二个函数,不带回调参数

Javascript 在第一个函数完成时执行第二个函数,不带回调参数,javascript,jquery,html,css,events,Javascript,Jquery,Html,Css,Events,背景:我正在通过VWO为一个网站运行A/B测试。我可以编写一个在页面加载时运行的脚本,但在页面加载后,除了在JS中“覆盖”(例如删除div、更改CSS属性、追加div)之外,我无法访问任何网站先前存在的脚本或以任何方式更改其代码 问题:加载页面时,出现一个空的。页面的其他地方有一个。在RequestPriceInfo()中,函数根据页面上的某些表单字段值将HTML输出到div#priceinfo。它还附加了一个“order”按钮(实际上它根本不是一个按钮,而是一个嵌套在锚标记中的图像)。我试图使

背景:我正在通过VWO为一个网站运行A/B测试。我可以编写一个在页面加载时运行的脚本,但在页面加载后,除了在JS中“覆盖”(例如删除div、更改CSS属性、追加div)之外,我无法访问任何网站先前存在的脚本或以任何方式更改其代码

问题:加载页面时,出现一个空的
。页面的其他地方有一个
。在
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呼叫吗?谢谢!这是一个非常有效的解决方案。