背景:我正在通过 VWO 为网站运行 A/B 测试。我可以编写一个在页面加载时运行的脚本,但我无法访问网站的任何现有脚本或以任何方式更改它们的代码,除了在 JS 中“覆盖”(例如删除 div、更改 CSS 属性、附加 div)之后页面加载。
问题:当页面加载时,有一个空的 <div id="priceinfo"></div>
.在页面的其他地方,有一个 <a href="javascript:RequestPriceInfo()" id="requestPrice"><img ...></a>
.里面RequestPriceInfo()
, 函数输出 HTML 到 div#priceinfo
基于页面上的某些表单字段值。它还附加了一个“订购”按钮(实际上根本不是按钮,而是嵌套在 anchor 标记中的图像)。我正在尝试使用 JQuery 的 attr()
更改“按钮”图像的来源功能。
进展:无。我试过使用 $('a#requestPrice').click(function() {...} );
但是改变图像的来源是行不通的,我想是因为当 a#requestPrice
时内容还没有立即加载到页面上。单击并运行我的函数。我需要一种方法来判断何时 RequestPriceInfo()
已被解雇并完成,但 RequestPriceInfo()
上没有回调参数而且我无权访问脚本来更改它并添加一个。
可能有用的信息:有一个变量,priceRequested
, 当 RequestPriceInfo()
时从 false 变为 true运行。虽然我没有意识到这个解决方案会很优雅,但使用 Object.prototype.watch()
似乎不合理监控变量,但我的想法已经用完了。
我如何检测 RequestPriceInfo()
何时是否已完成执行我的函数而不编辑函数以添加回调参数?
最佳答案
使用 CSS 怎么样...您的脚本可以向 <div id="priceinfo"></div>
添加一个类,也许像<div id="priceinfo" class="newButton"></div>
.然后,在 CSS 中,您将隐藏 #priceInfo.newButton
的 img。并插入您的新图像作为 anchor 的背景图像。
关于javascript - 当第一个函数完成 W/O 回调参数时执行第二个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35442342/