| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- //此变量用于监听是否加载了新的页面(包括新窗口打开),如果是,增加变量值,用于传回后台。
- var tabList = []; //用来记录打开的新的tab的id
- var nowTabId = null;
- var nowTabIndex = 0; //重要变量!!
- const extension = {
- ws: null,
- };
- chrome.storage.local.set({ "parameterNum": 1 }); //修改默认的参数索引值
- // chrome.tabs.update(6,{"active":true}) //一行就可以切换标签页
- chrome.tabs.onActivated.addListener(function(activeInfo) {
- nowTabId = activeInfo.tabId; //记录现在活动的tabid
- if (tabList.indexOf(nowTabId) != -1) {
- nowTabIndex = tabList.indexOf(nowTabId);
- }
- });
- // 监听来自content-script的消息
- chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
- if (request.type == 0) {
- if (tabList.indexOf(sender["tab"]["id"]) < 0) { //元素不存在加入数组
- tabList.push(sender["tab"]["id"]);
- }
- nowTabIndex = tabList.indexOf(nowTabId);
- sendResponse({ type: 0, "msg": "Get!" }); //回传一个消息
- } else if (request.type == 1) { //前台询问参数索引值
- sendResponse({ type: 1, "value": parameterNum }); //回传一个消息
- } else if (request.type == 2) {
- let message = {
- type: 2, //消息类型,2代表键盘输入
- message: { "keyboardStr": "{}{BS}" + request.msg } // {}全选{BS}退格
- };
- extension.ws.send(JSON.stringify(message));
- } else if (request.type == 3) {
- let tmsg = request.msg;
- tmsg.tabIndex = nowTabIndex; //赋值当前tab的id
- let message = {
- type: 3, //消息类型,3代表元素增加事件
- from: 0, //0代表从浏览器到流程图,1代表从流程图到浏览器
- message: { "pipe": JSON.stringify(request.msg) } // {}全选{BS}退格
- };
- console.log(message);
- extension.ws.send(JSON.stringify(message));
- }
- });
- // 打开一个 web socket
- extension.ws = new WebSocket("ws://localhost:8084");
- extension.ws.onopen = function() {
- // Web Socket 已连接上,使用 send() 方法发送数据
- console.log("已连接");
- message = {
- type: 0, //消息类型,0代表链接操作
- message: {
- id: 0, //socket id
- }
- };
- this.send(JSON.stringify(message));
- };
- extension.ws.onmessage = function(evt) {
- evt = JSON.parse(evt.data);
- if (evt["type"] == "0") { //0代表更新参数添加索引值
- chrome.storage.local.set({ "parameterNum": parseInt(evt["value"]) }); //修改值
- }
- };
- extension.ws.onclose = function() {
- // 关闭 websocket
- console.log("连接已关闭...");
- };
|