Chrome扩展-如何在打开的选项卡上捕获滚动位置

Chrome Extension - How to capture Scroll Position on open tabs

本文关键字:选项 位置 滚动 扩展 Chrome      更新时间:2023-09-26

我当前通过在内容脚本中运行它并注入JQuery来捕获选项卡上的滚动位置。

问题如何将滚动捕获应用于打开的所有选项卡,而不仅仅是我所在的当前选项卡?我在下面的尝试只适用于当前选项卡。

不确定如何在所有选项卡上迭代for循环,因为无法访问内容脚本中的chrome.tabs API。通过不断跟踪滚动捕获,我是否错误地处理了这个问题,并且应该使用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);

您可以使用后台脚本迭代所有选项卡并注入自定义脚本。您可以使用chrome.tabs.query迭代后台页面中的所有选项卡。您可以使用chrome.tabs.executeScript将脚本注入选项卡。现在,您只需要从内容脚本向后台脚本发送一条消息,就可以开始了。