我有一个 Chrome 扩展程序,我终于开始更新 [已经超过 6 个月]。
我经历了将清单版本从 1 升级到 2 的过程。
我的扩展程序向 Facebook 添加了一个“全部戳”按钮,因此您不必单独戳每个人。
问题是,他们将戳移到了 facebook.com/pokes,而不是在主页的框架中。
所以我的解决方法是告诉人们在/pokes 上重新加载页面,这样脚本就会重新加载,并注入“Poke All”按钮。现在,我想解决这个问题,以便当用户访问 facebook.com,然后单击“戳”并加载戳时,该按钮会自动出现。我已经用 setTimeout 设置了 1.5 秒,但是如果有人的连接速度很慢,1.5 秒是不够的,并且脚本试图过早地注入按钮,导致没有按钮。
所以基本上,我在“Pokes”链接中添加了一个事件监听器。这就是我添加超时运行的原因show_pokes()
,它运行注入代码。
我的想法是放一个$(document).ready()
inside show_pokes()
,但这不起作用,因为它从未在函数中继续存在。我猜$(document).ready()
只是为了初始页面加载?所以我尝试了
document.addEventListener('DOMContentLoaded', function (){ /*huge chunk of code here*/ })
但这也只是挂起,从未完成该功能。
因此,我很确定当您单击 Facebook 选项卡时,Facebook 会使用 AJAX 请求 [请参见此处],所以也许我可以设置一个事件以等待 AJAX 完成,然后它可以在我的函数中继续,并注入按钮?任何帮助将不胜感激,或者如果您需要更多代码或更多细节,请告诉我。或者,如果你可以去 Facebook 看看它是如何加载这些标签的,[并确认或否认它是否使用 AJAX],那也会有很大的帮助。