// 打开新 tabasyncfunctionopen(url:string):Promise<number> {returnnewPromise((resolve) =>{ chrome.tabs.create( { url },(tab) =>resolve(tab.id!) ); }); }// 获取活跃的 tab,通常是用户正在浏览的页面asyncfunctiongetActiveTab():Promise<chrome.tabs.Tab|null> {returnnewPromise((resolve) =...
vue-chrome-extension-quickstart:https://gitee.com/zheng_yongtao/vue-chrome-extension-quickstart 二、数据存储 通过gitee 来做存取 建一个私有仓库来保存自己的tab标签信息,需要同步的时候再获取 gitee 仓库的tab标签到本地。这样不用自己写服务端对数据进行存储,不用服务器也可以完成数据存储工作,减少了很多不必要...
需要特别说明的是,虽然你可以通过chrome-extension://xxx/background.html直接打开后台页,但是你打开的后台页和真正一直在后台运行的那个页面不是同一个,换句话说,你可以打开无数个background.html,但是真正在后台常驻的只有一个,而且这个你永远看不到它的界面,只能调试它的代码。 event-pages 这里顺带介绍一下event...
chrome.tabs的API主要是和浏览器的标签页进行交互,通过query找到当前的激活中的tab,然后使用executeScript向标签页注入脚本内容。 manifest同样需要activeTab的权限,来允许我们的插件使用tabs的API。 {"name":"Hello Extensions",//..."permissions":["storage","declarativeContent","activeTab"],} 重新加载插件,我们...
temp.src = chrome.extension.getURL(jsPath); temp.onload =function() { // 放在页面不好看,执行完后移除掉 this.parentNode.removeChild(this); }; document.head.appendChild(temp); } 你以为这样就行了?执行一下你会看到如下报错: Denyingloadofchrome-ex...
_action": { "default_title": "Thumbnail Opener", "default_popup": "app/index.html", "default_icon": "app/favicon.ico" }, "background": { "scripts": ["app/scripts/controllers/mainController.js"], "persistent": false }, "permissions": [ "tabs", "http://*/*", "activeTab" ] ...
无需声明任何权限就可以调用tabs中的大多出api,但是如果需要修改tab的url等属性,则需要tabs权限,除此之外,想要在tab中执行js和修改css,还需要activeTab权限才行。 get – chrome.tabs.get(integer tabId, function callback) getCurrent – chrome.tabs.getCurrent(function callback) ...
"img/logo.jpg", //插件图标"default_popup": "demo/dist/index.html" //点击图标后弹出的html互动文件},"content_scripts": [{"matches": ["<all_urls>"], //匹配url"js": ["bg.js"], //执行脚本"run_at": "document_start" //脚本运行时机}],"permissions": ["tabs", "activeTab"] //...
chrome.extension(getURL , inIncognitoContext , lastError , onRequest , sendRequest) chrome.i18n chrome.runtime(connect , getManifest , getURL , id , onConnect , onMessage , sendMessage) chrome.storage 其实看到这里不要悲观,这些API绝大部分时候都够用了,非要调用其它API的话,你还可以通过通信来实...
严格来讲,我们正在说的东西应该叫Chrome扩展(Chrome Extension),真正意义上的Chrome插件是更底层的浏览器功能扩展,可能需要对浏览器源码有一定掌握才有能力去开发。鉴于Chrome插件的叫法已经习惯,本文也全部采用这种叫法,但读者需深知本文所描述的Chrome插件实际上指的是Chrome扩展。