首页
学习
活动
专区
圈层
工具
发布

Chrome Extension 开发中的 Tab 操作与实践

Tabs API 简介 在 Chrome Extension 的开发中,Tabs API 是专门用于处理浏览器标签页的接口。...创建新标签页 使用 chrome.tabs.create() 方法,开发者可以轻松创建一个新的标签页并指定它的 URL。...当我们想要遍历当前打开的标签页时候,就可以将上面两个参数改成 false 即可。 监听标签页的变化 chrome.tabs.onUpdated.addListener() 允许你实时监听标签页的变化。...当标签页的 URL、标题或状态发生变化时,扩展程序可以根据具体情况采取相应的措施: chrome.tabs.onUpdated.addListener(function(tabId, changeInfo...使用这个 API 可以帮助我们整理已经打开的标签页 Tabs API 与其他 API 的结合 在 Chrome Extension 开发中,Tabs API 通常需要与其他 API 一起配合使用,以实现更强大的功能

84010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    从油猴脚本管理器的角度审视Chrome扩展

    Breaking Changes,以及诸多原本v2支持的API在v3被限制或移除,导致诸多插件无法无损过渡到v3版本。.../ chrome.tabs.connect / / popup chrome.extension.getBackgroundPage / chrome.tabs.sendMessage / chrome.tabs.connect...API"); // https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/onUpdated...cross.tabs.onUpdated.addListener((_, changeInfo, tab) => { if (changeInfo.status == "loading...,但是如何将这个对象传递给用户脚本,我们不能将这些变量暴露给网站本身,但是又需要将相关的变量传递给脚本,而脚本本身就是运行在用户页面上的,否则我们没有办法访问用户页面的window对象,所以接下来我们就来讨论如何保证我们的高级方法安全地传递到用户脚本的问题

    1.1K10

    用 CodeBuddy 造自动刷新插件,手速快到连 F5 键都怀疑人生!

    内容编辑时频繁刷新后台查看效果监控数据看板时错过关键变化团队开发中代码更新不同步测试时忘记刷新导致误判如果答案是肯定的,这款插件将成为你的生产力神器!...例如:自动生成 Chrome API 调用示例提供跨浏览器兼容的实现方案给出异步操作的安全处理模式在chat模式让v3帮我们生成对应项目的readme文件,以便后面直接将readme保存在craft模式进行使用操作下面是...这个报错是什么意思?...tabId || null    };} // 监听标签页激活事件chrome.tabs.onActivated.addListener((activeInfo) => {    // 如果正在刷新,...chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {    if (tabId === refreshState.tabId)

    48910

    lastTab—Chrome 拓展开发实践

    但是好景不长,这个插件下线了,猜测可能是因为 Chrome 升级了版本(2->3),插件没有及时更新导致的。后来我就从一些神奇的网站上找到历史版本,使用离线安装的方式继续使用,及手续香。...background 下面就是 lastTab 的核心功能区了。首先说一下简单的原理,Chrome 拓展提供了一些浏览器事件的监听,然后做出相应的处理。...chrome.action.setBadgeBackgroundColor({color: [255, 0, 0, 255]}); chrome.tabs.create({url...当一个标签页被激活时,调用 tabActivated 函数,并传递激活信息。 在 tabActivated 函数中,记录激活事件的日志信息。 检查激活信息中是否包含窗口 ID。...== 'undefined' && window.tabs[0].url !== "undefined" && window.tabs[0].url.search(regExpr) !

    36110

    Chrome扩展程开发初探

    下面正式进入正题,如何开发 Chrome 拓展。 准备 首先你需要具备一些知识:HTML 、CSS 、 JavaScript 等。其次需要了解 Chrome 拓展开发规范和API。...、消息传递、浏览器事件监听、持久存储、定时任务和网络请求。...消息传递 监听和处理来自内容脚本(content scripts)、弹出页面(popup)和其他部分的消息: chrome.runtime.onMessage.addListener((message,...浏览器事件监听 监听浏览器的各种事件,例如标签页更新: chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => { if (changeInfo.status...消息传递:与扩展的其他部分(如后台脚本 background.js、弹出页面 popup.js)进行消息传递和通信。 数据采集和分析:收集页面上的数据,进行分析或发送到后台进行处理。

    1.2K10

    从 0 开始入门 Chrome Ext 安全(二)-- 安全的 Chrome Ext

    其中的主要区别是,background js在事件触发之后会持续执行,而且在关闭所有可见视图和端口之前不会结束。值得注意的是,页面打开、点击拓展按钮都连接着相应的事件,而不会直接影响插件的加载。...(function callback) 当cookie删除或者更改导致的事件 当插件拥有cookie权限时,他们可以读写所有浏览器存储的cookie. ?.../extensions/webRequest 在具体了解这个api之前,首先我们必须了解一次请求在浏览器层面的流程,以及相应的事件触发。...chrome.tabs chrome.tabs是用于操作标签页的api,算是所有api中比较重要的一个api,其中有很多特殊的操作,除了可以控制标签页以外,也可以在标签页内执行js,改变css。...无需声明任何权限就可以调用tabs中的大多出api,但是如果需要修改tab的url等属性,则需要tabs权限,除此之外,想要在tab中执行js和修改css,还需要activeTab权限才行。

    1.7K20

    从0开始入门Chrome Ext安全(二) -- 安全的Chrome Ext

    其中的主要区别是,background js在事件触发之后会持续执行,而且在关闭所有可见视图和端口之前不会结束。值得注意的是,页面打开、点击拓展按钮都连接着相应的事件,而不会直接影响插件的加载。...(function callback) 当cookie删除或者更改导致的事件 当插件拥有cookie权限时,他们可以读写所有浏览器存储的cookie..../extensions/webRequest 在具体了解这个api之前,首先我们必须了解一次请求在浏览器层面的流程,以及相应的事件触发。...chrome.tabs chrome.tabs是用于操作标签页的api,算是所有api中比较重要的一个api,其中有很多特殊的操作,除了可以控制标签页以外,也可以在标签页内执行js,改变css。...无需声明任何权限就可以调用tabs中的大多出api,但是如果需要修改tab的url等属性,则需要tabs权限,除此之外,想要在tab中执行js和修改css,还需要activeTab权限才行。

    1.3K20

    基于Chrome扩展的浏览器可信事件与网页离线PDF导出

    基于Chrome扩展的浏览器可信事件与网页离线PDF导出 Chrome扩展是一种可以在浏览器中添加新功能和修改浏览器行为的软件程序,我们可以基于Manifest规范的API实现对于浏览器和Web页面在一定程度上的修改...这实际上是由于浏览器的安全策略导致的,由于浏览器为了加强安全性,限制了一些可能会影响用户隐私的API,只有在用户的直接操作下才能运行,也就是相当于执行Copy命令只有在用户主动激活上下文中才可以正常触发...那么此时我们就需要在扩展中查询当前活跃的标签页,然后需要过滤下当前活跃标签的协议,例如chrome://协议的连接我们不会进行处理,然后在符合条件的情况下我们将tabId传递下去。...权限声明,将事件传递到Inject Script中执行,可以发现即使是在声明了权限的情况下,document.execCommand("paste")返回的结果仍然是false,并且无法触发我们绑定的事件...在扩展程序中实际上提供了chrome.downloads.download方法,这个方法可以直接下载文件到设备中,并且虽然传递数据参数名字为url,但是实际上并不会受到链接长度/字符数的限制,通过传递Base64

    78010

    浏览器“黑客”

    一、事件概述 2020年10月,美团安全运营平台发现流量中存在恶意JavaScript请求,信息安全部收到告警后立即开始应急处理,通过对网络环境、访问日志等进行排查,最终锁定恶意请求由Chrome浏览器安装恶意插件引起...2.2 分析攻击路径 根据告警中涉及的触发页面、相关网络环境信息,排除流量劫持、XSS攻击等情况,猜测可能的原因为浏览器插件或恶意软件导致。...接下来为script对象的src属性赋值,在addHandler方法中,cl这个参数由elem传递过来,其中包含src字符串,通过cl[0].split('>').slice(2, 3)拿到关键字src...Chrome后台API,在常规沙箱环境中可能会出现无法调用API而中途报错退出。...分析中还发现,很多恶意行为需要触发特定事件才能进入到构造恶意Payload流程,如触发chrome.tabs.onUpdated等。

    94540

    自制浏览器插件:实现网页内容高亮、自动整理收藏夹功能

    自制浏览器插件:实现网页内容高亮、自动整理收藏夹功能 以 Chrome 扩展 Manifest V3 为例,构建一个实用型插件:在网页上高亮选中的内容,并自动整理浏览器收藏夹。...list:list.concat([msg.data]) await chrome.storage.local.set({[key]:next}) } }) chrome.tabs.onUpdated.addListener...chrome.scripting.executeScript({target:{tabId},files:['content.js']}) chrome.tabs.sendMessage(tabId...大量书签操作建议分批执行并设置简单的速率限制。 历史访问时间依赖 chrome.history,隐私模式与部分场景可能不可用。...需改用 tabs.executeScript 采用轻量适配层封装差异,优先最小权限与主流程可用 安装与发布 开发模式:Chrome 打开 chrome://extensions,启用开发者模式,加载已解压的扩展

    22110

    【前端工具】Chrome 扩展程序的开发与发布 -- 手把手教你开发扩展程序

    扩展(Extension) 指的是通过调用 Chrome 提供的 Chrome API 来扩展浏览器功能的一种组件,工作在浏览器层面,使用 HTML + Javascript 语言开发。...chrome扩展程序将后台网页分为两种类型: 持续运行的后台网页 事件页面 是否持久存在是事件页面与后台网页之间的根本区别。...接下来,我们的扩展要灵活地完成各种功能,最重要的就是互相间的通信! 信息数据在内容脚本、弹窗页面以及事件页面之间传递是一个扩展程序最重要的部分。...使用 chrome.* API 消息传递,主要使用了 Chrome 浏览器的内置 chrome 对象进行。打开浏览器,试一下,chrome 对象其实包含了非常多的功能: ?...使用 chrome.tabs.query({ active: true, currentWindow: true }, function(tabs) {}) 则能正确选中当前打开的标签页。

    1.9K30
    领券