【发布时间】:2014-11-12 16:53:51
【问题描述】:
我目前通过在内容脚本(见下文)中运行它并注入 JQuery 来捕获选项卡上的滚动位置。
问题如何将滚动捕获应用到所有打开的标签,而不仅仅是我所在的当前标签? 我在下面的尝试仅适用于当前标签。
由于无法访问内容脚本中的 chrome.tabs API,因此不确定如何在所有选项卡中迭代 for 循环。我是否通过不断跟踪滚动捕获来解决这个错误,并且应该使用 background.js 仅在某个事件上调用 content_script 函数?
谢谢!
manifest.json
{
"manifest_version": 2,
"name": "ScrollPosition",
"version": "1.0",
"background": {
"page": "background.html"
},
"content_scripts": [
{ "matches": ["http://*/*", "https://*/*"],
"js": ["jquery-1.11.1.min.js","content_script.js"]}
],
"browser_action": {
"default_icon": {
"19": "images/icon19.png",
"38": "images/icon38.png"
},
"default_popup": "popup.html"
},
"permissions": [
"tabs",
"windows",
"<all_urls>",
"chrome://favicon/",
]
}
content_script.js
var scrollPosition = 0;
function scrollPos() {
$(document).scroll(function(){
scrollPosition = $(this).scrollTop();
console.log('your scroll position is: '+scrollPosition);
});
};
window.addEventListener("load", scrollPos);
【问题讨论】:
-
你guessed correctly。只有内容脚本可以访问该选项卡:在后台页面中运行
$(this).scrollTop()指的是后台页面本身。请尝试以某种方式拆分您的问题:目前尚不清楚我们究竟应该回答什么。一次只做一个问题,您总是可以创建多个问题。 -
@Xan 感谢您的快速回复并澄清了问题。似乎标题不正确,因此也进行了更新。再次感谢您的帮助。
标签: javascript jquery google-chrome-extension scrolltop message-passing