Javascript 当twitter流加载时加载chrome扩展脚本
我刚刚写了一个chrome扩展,它用雅虎财经的数据替换了前面用美元设计的股票符号。不过,基于twitter如何加载流,我遇到了一些问题。我将js设置为在document_end上运行,但是twitter会在DOM就绪后加载流。为了解决这个问题,我只是检查了一下某个元素是否存在,然后运行脚本,如果它不只是等待500毫秒,然后再试一次 搜索页面上似乎也有问题,可能是因为我正在检查的元素有一个不同的类,我还没有真正研究这个问题 另一个问题是,当一条tweet中有大量符号可能与第一个问题有关,但似乎插入了额外的DOM元素时,它会造成混乱 该项目托管在github上,如果能得到一些反馈和可能的贡献,那就太棒了Javascript 当twitter流加载时加载chrome扩展脚本,javascript,jquery,twitter,google-chrome-extension,Javascript,Jquery,Twitter,Google Chrome Extension,我刚刚写了一个chrome扩展,它用雅虎财经的数据替换了前面用美元设计的股票符号。不过,基于twitter如何加载流,我遇到了一些问题。我将js设置为在document_end上运行,但是twitter会在DOM就绪后加载流。为了解决这个问题,我只是检查了一下某个元素是否存在,然后运行脚本,如果它不只是等待500毫秒,然后再试一次 搜索页面上似乎也有问题,可能是因为我正在检查的元素有一个不同的类,我还没有真正研究这个问题 另一个问题是,当一条tweet中有大量符号可能与第一个问题有关,但似乎插入
最简单的方法是倾听事件。在浏览器呈现tweet之前,您可以使用
DOMNodeInserted
事件捕获该tweet
正如Chrome18一样,mutationobserver
现在已经实现,它速度快,而且不会很快启动,因此它很简洁。DOM是异步的,每次调用可以触发多个更改!它显著提高了突变的性能
使用mutationobserver
的一个例子是:
var observer = new MutationObserver(function onMutationObserver(mutations) {
mutations.forEach(function(mutationNode) {
// New Nodes added ... Deal with it!
});
});
observer.observe(historyContainerDOM, { childList: true, subtree: true });
我在我的一篇文章中添加了一些评论,谈到这一点,请随意选择。最简单的方法是倾听事件。在浏览器呈现tweet之前,您可以使用
DOMNodeInserted
事件捕获该tweet
正如Chrome18一样,mutationobserver
现在已经实现,它速度快,而且不会很快启动,因此它很简洁。DOM是异步的,每次调用可以触发多个更改!它显著提高了突变的性能
使用mutationobserver
的一个例子是:
var observer = new MutationObserver(function onMutationObserver(mutations) {
mutations.forEach(function(mutationNode) {
// New Nodes added ... Deal with it!
});
});
observer.observe(historyContainerDOM, { childList: true, subtree: true });
我已经在我的一篇文章中添加了一些评论,谈到这一点,请随便拿你想要的