nil*_*cit 4 javascript scroll facebook
是否有一些我可以执行的JavaScript代码滚动到Facebook上消息框的顶部?因此,当您单击"查看全部"并转到主消息页面时,如果向上滚动则会加载更多消息.我想强制它继续向上滚动以继续加载消息.我试过了
document.body.scrollTop = document.documentElement.scrollTop = 0;
但那当然只滚动到实际页面的顶部.有关如何滚动消息框的任何想法?
小智 5
选择一个对话并尝试此脚本(通过控制台加载):
var autoLoad = {
messagesContainer: document.querySelector('#contentArea [role=main] .uiScrollableAreaContent'),
start: function (speed) {
var messagesContainer = this.messagesContainer,
loadMore = document.querySelector('[role=log] .pam.uiBoxLightblue.uiMorePagerPrimary');
speed = parseInt(speed, 10) || 1000;
clearInterval(this.interval);
this.interval = setInterval(function () {
messagesContainer.style.top = '0px';
loadMore.click();
}, speed);
},
stop: function () {
clearInterval(this.interval);
this.messagesContainer.style.top = '';
}
};
Run Code Online (Sandbox Code Playgroud)
要启动它,请键入:
// Takes a 'speed' parameter, defaults to 1000 milliseconds
autoLoad.start(1200);
Run Code Online (Sandbox Code Playgroud)
并停止它(滚动条重新出现的必要条件):
autoLoad.stop();
Run Code Online (Sandbox Code Playgroud)
说明:
在探索Facebook的DOM之后,我发现了一些专门针对此工作所需元素的选择器:
消息容器可滚动区域不使用本机滚动,而是使用bottom和top设置它的当前滚动位置.
因此,如果要滚动到顶部,则将容器设置为top: '0',并且由于这种方式,自动加载AJAX的消息仅触发一次,您需要在每次滚动到顶部后手动触发它.我设法通过click在触发AJAX的链接中执行来完成此操作.
我试图获得我能找到的最具体的类/选择器,以及那些听起来更通用的类,因为我不知道Facebook是否以某种方式动态生成id /类.
我在Firefox和Chrome下对此进行了测试,稍微探索一下代码并根据您的需要进行更改.我希望这对你有用,否则,你可以使用DOM资源管理器找到合适的选择器.
| 归档时间: |
|
| 查看次数: |
8996 次 |
| 最近记录: |