我正在尝试构建Chrome浏览器扩展程序,这应该会增强Twitter网站在Google Chrome中的行为方式。我想标记在加载新推文时向下移动的顶部推文,然后滚动到它。
通过使用mousedown
挂钩.live()
事件,我可以在点击前获取热门推文。在那之后,我必须等到推文被加载,然后我向下滚动到之前的推文。我现在有一个setTimeout()
的黑客,这对我有用,但我想要一个更好的解决方案。
可能的解决方案:
答案 0 :(得分:4)
由于您定位的是谷歌浏览器,因此可以使用DOM Level 2 Mutation Events,具体为:
您可以使用addEventListener
someElement.addEventListener('DOMNodeInserted', eventHandlerFunction, false);
或者因为你使用jQuery,使用bind
方法:
$(selector).bind('DOMNodeInserted', function () {
//..
});
请注意不要在这些事件中修改受影响的DOM,因为您可能会进入无限事件递归,例如,如果在DOMNodeInserted
事件中插入元素,它将再次触发。