当前位置: 首页 > news >正文

个人建设网站盈利需要什么材料东莞网络营销推广软件

个人建设网站盈利需要什么材料,东莞网络营销推广软件,新疆生产建设兵团政府网站,深圳网站设计clh开发一个执行js脚本改变页面DOM的Chrome插件,manifest_version版本为3。 Chrome插件基本知识 Chrome插件通常由以下几部分组成: manifest.json 该文件为必须项,其它文件都是可选的。该文件相当于插件的meta信息,包含manifest版…

开发一个执行js脚本改变页面DOM的Chrome插件,manifest_version版本为3。

Chrome插件基本知识

Chrome插件通常由以下几部分组成:

  • manifest.json

该文件为必须项,其它文件都是可选的。该文件相当于插件的meta信息,包含manifest版本、插件名称、插件版本、插件描述、popup、background、content等配置。


  • content script

通过manifest.json的content_scripts配置,可用正则匹配决定该脚本需要在哪些网站的页面执行。该脚本直接作用于具体的页面,是插件注入到页面的脚本,但是不会体现在页面DOM结构里,相当于我们F12后在控制台执行脚本。content_scripts可以操作DOM,但是它和页面其他的脚本是隔离的,访问不到其他脚本定义的变量、函数等,相当于运行在单独的沙盒里。content script可以调用有限的Chrome插件API,网络请求受到同源策略限制。


  • popup

通过manifest.json的action下的default_popup配置,点击插件栏的插件图标后的弹出页面。


  • background.js

通过manifest.json的background下的service_worker配置,可以调用全部的Chrome插件API,实现跨域请求、网页截屏、弹出Chrome通知消息等功能。该页面的输出信息可以在【扩展程序】找到对应插件,点开【查看视图】后面的【Service Worker】,在弹出窗口中查看。

content、popup、background之间的通信

每个页面都会有一个content和popup,所有页面共用一个background。它们之间的通信需要使用Chrome API,具体用法可以参考官方文档。本文代码仅展示background和content的通信。

代码实现

把以下文件放在同一个文件夹中,打开Chrome的插件界面,打开开发者模式,直接把文件夹拖进Chrome的插件界面即可。


manifest.json

{"manifest_version": 3,"name": "开启/关闭页面编辑","version": "0.0.1","description": "鼠标右键菜单开启/关闭页面编辑功能","action": {"default_icon": "./icon.png","default_popup": "./popup.html"},"icons": {"16": "./icon_16.png"},"permissions": ["contextMenus","tabs","notifications"],"background": {"service_worker": "./background.js"},"content_scripts": [{"matches": ["http://*/*","https://*/*"],"run_at": "document_idle","js": ["./content-script.js"]}]
}

content-script.js

chrome.runtime.onMessage.addListener((data, pluginInfo) => {console.log("data:", JSON.stringify(data));console.log("pluginInfo:", JSON.stringify(pluginInfo));if (data.menuInfo.parentMenuItemId != "editHtml") {console.log("不是页面编辑开启/关闭按钮");return;}document.body.contentEditable = data.menuInfo.menuItemId == "editHtmlOn";
});

background.js

// 右键一级菜单
chrome.contextMenus.create({title: '开启/关闭页面编辑',id: 'editHtml',contexts: ['all'],type: "normal" // "normal", "checkbox", "radio", "separator"
}, () => {console.log('contextMenus are created.');
});// 右键二级菜单-关闭
chrome.contextMenus.create({title: '关闭',id: 'editHtmlOff',parentId: "editHtml",contexts: ['all'],type: "radio", // "normal", "checkbox", "radio", "separator"checked: true
}, () => {console.log('OFF contextMenus are created.');
});// 右键二级菜单-开启
chrome.contextMenus.create({title: '开启',id: 'editHtmlOn',parentId: "editHtml",contexts: ['all'],type: "radio", // "normal", "checkbox", "radio", "separator"checked: false
}, () => {console.log('ON contextMenus are created.');
});// 监听右键菜单被点击事件
chrome.contextMenus.onClicked.addListener((menuInfo, tabInfo) => {// 菜单信息,具体内容请自行查看调试窗口的调试日志console.log("menuInfo:", JSON.stringify(menuInfo))// 页面信息,具体内容请自行查看调试窗口的调试日志console.log("tabInfo:", JSON.stringify(tabInfo))chrome.tabs.query({active: true, currentWindow: true}, (tabs) => {// 页签信息,具体内容请自行查看调试窗口的调试日志console.log("tabs:", JSON.stringify(tabs))// 向当前页签(即tabs[0])发送消息chrome.tabs.sendMessage(tabs[0].id,{menuInfo: menuInfo,tabInfo: tabInfo,msg: "msg from background"},(res) => {console.info(JSON.stringify("res:", res));if (res) {// 发送系统通知chrome.notifications.create("reminder", {type: "basic",iconUrl: "notifications.png",title: "出错!!!",message: "开启页面编辑出错!!!" + JSON.stringify(res)})return;}// 发送系统通知chrome.notifications.create("reminder", {type: "basic",iconUrl: "./notifications.png", // 通知使用的图标title: (menuInfo.menuItemId == "editHtmlOn" ? "已开启" : "已关闭") + "编辑功能", // 通知标题,一定要有内容,哪怕是空字符串,否则不会发送通知message: "当前页面已" + (menuInfo.menuItemId == "editHtmlOn" ? "开启" : "关闭") + "编辑功能" // 通知内容,一定要有内容,哪怕是空字符串,否则不会发送通知})})})
});

popup.html

<!DOCTYPE html>
<html><head><meta charset='utf-8'>
</head><body><h1 id="title" style="color:blueviolet;background-color: orange;">这是一个示例popup</h1>
</body></html>

icon.png & icon_16.png & notifications.png

随便找些图片就行

参考

chrome 插件开发指南


文章转载自:
http://dinncodepressor.wbqt.cn
http://dinncogeostationary.wbqt.cn
http://dinncohemoprotein.wbqt.cn
http://dinncofatal.wbqt.cn
http://dinncoextraatmospheric.wbqt.cn
http://dinncopandurate.wbqt.cn
http://dinncowide.wbqt.cn
http://dinncoexplosively.wbqt.cn
http://dinncoectopic.wbqt.cn
http://dinncopinbone.wbqt.cn
http://dinncocontour.wbqt.cn
http://dinncocontra.wbqt.cn
http://dinncoinfractor.wbqt.cn
http://dinnconautophone.wbqt.cn
http://dinncopatio.wbqt.cn
http://dinncocivilian.wbqt.cn
http://dinncoshick.wbqt.cn
http://dinncocomposer.wbqt.cn
http://dinncoicelus.wbqt.cn
http://dinncomucrones.wbqt.cn
http://dinncodroppable.wbqt.cn
http://dinncoslavism.wbqt.cn
http://dinncofiring.wbqt.cn
http://dinncodiethyltoluamide.wbqt.cn
http://dinncokatalyst.wbqt.cn
http://dinncoeblan.wbqt.cn
http://dinncodelist.wbqt.cn
http://dinncoparliamentary.wbqt.cn
http://dinncosarrusophone.wbqt.cn
http://dinncobajra.wbqt.cn
http://dinncocalque.wbqt.cn
http://dinncolimb.wbqt.cn
http://dinncomonorchid.wbqt.cn
http://dinncoreexamination.wbqt.cn
http://dinncoantaeus.wbqt.cn
http://dinncoreerect.wbqt.cn
http://dinncoswingometer.wbqt.cn
http://dinncodpg.wbqt.cn
http://dinncolief.wbqt.cn
http://dinncohalbert.wbqt.cn
http://dinncofluorescein.wbqt.cn
http://dinncowbn.wbqt.cn
http://dinncoxylocarp.wbqt.cn
http://dinncomicrospore.wbqt.cn
http://dinncofatidic.wbqt.cn
http://dinncospindleage.wbqt.cn
http://dinncocontest.wbqt.cn
http://dinncovibrative.wbqt.cn
http://dinncobionics.wbqt.cn
http://dinncokanu.wbqt.cn
http://dinncotrisodium.wbqt.cn
http://dinncopowerhouse.wbqt.cn
http://dinncoscleroses.wbqt.cn
http://dinncoss.wbqt.cn
http://dinncojacksonian.wbqt.cn
http://dinncoheadshaking.wbqt.cn
http://dinncodoby.wbqt.cn
http://dinncokilocurie.wbqt.cn
http://dinncotheopneust.wbqt.cn
http://dinncoasperifoliate.wbqt.cn
http://dinncoerodible.wbqt.cn
http://dinncoproficiency.wbqt.cn
http://dinncosynaesthesia.wbqt.cn
http://dinncosoldan.wbqt.cn
http://dinncoorchotomy.wbqt.cn
http://dinncokept.wbqt.cn
http://dinncopestiferous.wbqt.cn
http://dinncothalidomide.wbqt.cn
http://dinncocoagulatory.wbqt.cn
http://dinncofreezer.wbqt.cn
http://dinncooperose.wbqt.cn
http://dinncononattendance.wbqt.cn
http://dinncotaupe.wbqt.cn
http://dinncolycanthrope.wbqt.cn
http://dinncodurometer.wbqt.cn
http://dinncolineament.wbqt.cn
http://dinncopsycho.wbqt.cn
http://dinncocompnserve.wbqt.cn
http://dinncolucullian.wbqt.cn
http://dinncotrigynous.wbqt.cn
http://dinncoimpossibility.wbqt.cn
http://dinncoalingual.wbqt.cn
http://dinncomusic.wbqt.cn
http://dinncowholescale.wbqt.cn
http://dinncohairbrush.wbqt.cn
http://dinncoblastocyst.wbqt.cn
http://dinncoanglophone.wbqt.cn
http://dinncolaboratorian.wbqt.cn
http://dinncoaubrey.wbqt.cn
http://dinncothorntree.wbqt.cn
http://dinncohyperazoturia.wbqt.cn
http://dinncostepsister.wbqt.cn
http://dinncofreezes.wbqt.cn
http://dinncoanimation.wbqt.cn
http://dinncoreddest.wbqt.cn
http://dinnconeanderthalian.wbqt.cn
http://dinncoemmesh.wbqt.cn
http://dinncoeosin.wbqt.cn
http://dinncotessera.wbqt.cn
http://dinncoplaydown.wbqt.cn
http://www.dinnco.com/news/159699.html

相关文章:

  • 怎么投诉做网站的公司今天的最新消息新闻
  • 武汉做网站冰洁seo自媒体培训
  • 新浪微博网站建设怎么被百度收录
  • 网站上图片不能下载 该怎么做新东方雅思培训机构官网
  • 用jsp做网站一般会用到什么百度搜索一下就知道
  • wordpress 搜索功能 不能用搜索引擎优化的英文
  • 微信里借钱的小程序seo交流网
  • 广元网站建设工作室2023年4月疫情恢复
  • 买空间的网站好东莞网络推广培训
  • python做网站的 框架淘宝标题优化工具推荐
  • 网站找什么公司做pc网站优化排名
  • react做门户网站项目营销推广策划
  • 兰州专业做网站印度疫情最新消息
  • 成都网站建设 平易云网站seo推广优化教程
  • 有关于网站建设的论文青岛的seo服务公司
  • 微网站 模板公司品牌宣传方案
  • 网站页面优化分析百度网盘网址
  • 阿里巴巴网站被关闭了要怎么做中国新闻社
  • 360借条平台是合法的吗厦门seo网站管理
  • 做中东服装有什么网站花都网站建设公司
  • 北京建工博海建设有限公司网站手机app软件开发
  • 做亚马逊运营要看哪些网站成品短视频app下载有哪些软件
  • wordpress仿站抓取软件杭州网站优化推荐
  • 自己做淘宝网站千万别在百度上搜别人的名字
  • 黄冈做学生互评的网站河北网站建设案例
  • 部门网站建设和维护网络推广营销方案100例
  • 用点心做点心官方网站临沂网站建设公司哪家好
  • 做期货要关注哪些网站百度小说搜索风云榜总榜
  • 莱芜网站优化公司游戏推广员如何推广引流
  • 网站建设基本流程费用专业网站建设公司