【发布时间】:2013-10-19 22:56:10
【问题描述】:
我正在制作一个 chrome 扩展。而且我对 scrollTop 有一些问题(我希望这是“获取滚动高度”!)。
首先:结构:我有一个清单、一个 html 页面、一个 javascript 和一个图像。
第二:瞄准。我试图向下滚动到底部,而不是到顶部,然后重新启动以滚动到底部......一个循环。 在清单中我有这个:
{
"background": {
"page": "scroll.html"
},
"browser_action": {
"default_icon": "icon.png",
"default_title": ""
},
"content_scripts": [ {
"js": [ "scroll.js" ],
"matches": [ "http://*/*", "https://*/*" ]
} ],
"description": "Auto Scroll. UpDownUp!",
"icons": {
"128": "icon.png",
"48": "icon.png"
},
"manifest_version": 2,
"name": "Auto Scroll, UpDownUp",
"permissions": [ "tabs", "http://*/*", "https://*/*" ],
"version": "0.2.3"
}
如你所见,我没有任何弹出的 html。
在我的 html 页面中,我有这个:
<html>
<head>
<title>Auto Scroll</title>
</head>
<body >
<script src="scroll.js"></script>
</body>
</html>
在我的 scroll.js 中有几个函数,可以开始滚动,并且滚动得更快。 但我不需要引用所有代码(164 行)。
我只是有很多垃圾,最后它只做这个简单的事情:
chrome.tabs.update(id, {'url': 'javascript:document.body.scrollTop+=1;'});
我的扩展“有效”。但我还没有完成我想做的所有事情:
此扩展程序只会关闭(确实如此!!)。我希望当我在页面底部时,扩展程序将执行:
chrome.tabs.update(id, {'url': 'javascript:document.body.scrollTop=0;'});
我想:
1) 获取最大滚动高度,检查 scrolltop,如果相同,使用该代码。如果我这样做,扩展名将始终位于顶部(向下滚动一点之后),就好像这些值总是(!!)等于。
if(document.body.scollTop==document.body.Height)
{
chrome.tabs.update(id, {'url': 'javascript:document.body.scrollTop=0;'});
}
这是第一次尝试的结果...但不起作用。
2) var y=document.body.scrollTop --> 滚动 --> z=document.body.scrollTop。如果 y==z,那么我在底部,然后转到顶部...这不起作用,y 和 z 总是相等的!!!
我每次使用时都会使用警报(值)
chrome.tabs.update(id, {'url': 'javascript:document.body.scrollTop+=1;'});
设置为
alert(document.body.scollTop);
并弹出“0”。总是...我关闭弹出窗口,扩展程序向下滚动一点,然后弹出窗口又出现了 0!
好吧……是我的错!?
我有一个想法:我的 javascript 由背景页面加载,并且 javascript 作用于浏览器中的页面,我的 scrollTop 命令给了我背景页面高度......这真的很糟糕。 您能帮我找到在“活动”页面末尾停止以执行“转到顶部”功能的方法吗!?
编辑:
我发现了一些东西,如果我用这个
chrome.tabs.getSelected(null, function(tab) {
alert(tab.url);
})
一个窗口弹出我们告诉我 acqual 选项卡 url。看this发现height就是tab属性,所以我用:
chrome.tabs.getSelected(null, function(tab) {
alert(tab.height);
})
但是弹出窗口并说“未定义”....我真的不知道我该怎么做才能检索实际的标签滚动位置。
【问题讨论】:
-
您好,欢迎来到Stack Overflow。我只是想澄清一下:您是要滚动背景页面还是用户当前正在查看的页面?
-
如果我没记错的话,您可能正在使用
scrollTop访问不可编辑的值。如果要修改值,我相信你必须调用一个函数。不过我忘记了它是什么:(。祝你好运! -
嗨@Qantas94Heavy,谢谢。我实际上正在滚动可见页面,而不是背景页面。我可以滚动它,我已经完成了。问题是:我如何查看用户正在查看的页面的最大 scollTop 值? Bean5 我不想编辑“scrollTop”值,因为我已经能够使用我发布的代码来做到这一点。还是谢谢
标签: javascript google-chrome google-chrome-extension scroll