谷歌浏览器插件开发笔记0.1.022

谷歌浏览器插件开发笔记0.1.000

    • 示例文件
      • manifest.json
      • popup.html
      • options.js
      • options.html
      • content.js
      • background.js
    • 网页按钮快捷键插件
    • 参考链接

示例文件

共计有6个常用的文件

manifest.json

background字段:随着浏览器的打开而打开,随着浏览器的关闭而关闭, 通常把需要一直运行的、启动就运行的、全局的代码放在里面。它没办法控制页面元素,但可以通过 content_script 告诉它

content_scripts:当访问到设置的url时会执行js的代码,这里设置的是在文档加载完时执行

browser_action:点击浏览器插件图标会弹出的页面

options_page:插件的设置页面,一般会显示到浏览器的右上方,点击对应插件后面的竖向三点

web_accessible_resources:用于指定哪些扩展资源文件可以被网页访问

{"manifest_version": 2,"name": "按钮热键设置","description": "设置页面上按钮的快捷键","version": "1.0","permissions": ["activeTab","storage","https://*.mywebsite.com/*"],"background": {"scripts": ["background.js"],"persistent": false},"content_scripts": [{"matches": ["https://*.baidu.com/*"],"js": ["content.js"],"run_at": "document_end"}],"browser_action": {"default_popup": "popup.html","default_title": "Open the popup"},"options_page": "options.html","web_accessible_resources": ["script.js","style.css"]
}

popup.html

点击插件图片弹出的页面

<!DOCTYPE html>
<html>
<body>
<h1>Welcome to My Extension!</h1>
</body>
</html>

options.js

点击插件选项弹出的页面里加载的js文件

document.getElementById('save').onclick = function() {var color = document.getElementById('bgColor').value;chrome.storage.sync.set({backgroundColor: color});
};
alert("option")

options.html

点击插件选项弹出的页面

<!DOCTYPE html>
<html>
<body>
<h1>Extension Options</h1>
<label>Background color: <input type="text" id="bgColor"></label>
<button id="save">Save</button>
<script src="options.js"></script>
</body>
</html>

content.js

匹配到当前浏览器标签的url时执行的js

window.onload = function() {var links = document.getElementsByTagName('a');for(var i = 0; i < links.length; i++) {links[i].style.color = 'red';}
};

background.js

当前重新加载插件执行的js?

chrome.browserAction.onClicked.addListener(function(tab) {chrome.tabs.executeScript({code: 'document.body.style.backgroundColor="green"'});
});
alert("background")

网页按钮快捷键插件

这是我基于上面的内容,制作自己的第一个插件,功能就是在特定页面的按钮上加一个快捷键的功能

background.js

alert("加载插件成功")

content.js

$(document).ready(function() {setTimeout(function() {console.log($("button").length)$("button").each(function(index,value){var in18=$(value).attr("i18n");if(in18=="EBG.Srdetail.button.Save"){console.log($(value).attr("i18n"))console.log(index)$(value).attr("AccessKey","m")}});}, 4000);});

jquery-2.0.0.min.js
这个文件自己下载就行了
manifest.json在这里插入代码片

{"manifest_version": 2,"name": "快捷保存","description": "主要是忍受不了保存内容的时候,还要用鼠标去点击!!!安装该插件后,进入到xxx页面,ALT+M组合健执行保存功能","version": "1.0.0","permissions": ["activeTab"],"background": {"scripts": ["background.js"],"persistent": false},"content_scripts": [{"matches": ["https://eplus.huawei.com/ecare/msr/sr/*"],"js": ["jquery-2.0.0.min.js","content.js"],"run_at": "document_end"}],"browser_action": {"default_popup": "popup.html","default_title": "快捷保存插件说明"}
}

popup.html

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>说明</title>
</head>
<body>
<p>针对如下链接有效:https://xxxx</p>
<p>在页面加载完成后生效。</p>
<p>2024-07-10 xxxx</p>
</body>
</html>

参考链接

https://zhuanlan.zhihu.com/p/645191421
https://blog.csdn.net/z_344791576/article/details/4106300
https://blog.csdn.net/weixin_44786530/article/details/136515237

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/869849.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt 实战(2)搭建开发环境 | 2.2、.pro文件详解

文章目录 一、.pro文件详解1、.pro文件的作用2、项目管理3、编译配置4、依赖管理5、平台支持6、自动化编译7、示例8、总结 前言&#xff1a; 在Qt开发环境中&#xff0c;.pro文件是一个非常重要的项目文件&#xff0c;它全称为项目管理文件&#xff08;Project file&#xff09…

DHCPIP、Lan IPLan Static IP

一、什么是DHCP? DHCP&#xff08;Dynamic Host Configuration Protocol&#xff09;是一种网络协议&#xff0c;用于自动分配IP地址和其他网络配置给设备&#xff08;如计算机、手机、网络打印机等&#xff09;&#xff0c;使得设备能够在网络上进行通信。 IP地址分配&#…

【进阶篇-Day7:JAVA中Date、LocalDate等时间API的介绍】

目录 1、概述2、JDK8(-) 时间类2.1 Date类&#xff1a;&#xff08;1&#xff09;构造方法&#xff1a;&#xff08;2&#xff09;常用成员方法&#xff1a; 2.2 SimpleDateFormat类&#xff1a;2.3 总结&#xff1a;2.4 Calendar类介绍&#xff1a; 3、JDK8() 时间类3.1 日历类…

fortran简单排序算法,对一维、二维矩阵进行正序或倒序排序

fortran简单排序算法&#xff0c;对一维、二维矩阵进行正序或倒序排序 0. 引言1. 算法实现1.1 一维数组排序1.2 二维数组排序1.2 module文件 2. 结语 0. 引言 排序算法是计算机科学中的一项重要技术&#xff0c;它将一组数据按照特定的顺序排列起来。排序算法有很多种&#xff…

设计模式探索:责任链模式

1. 什么是责任链模式 责任链模式 (Chain of Responsibility Pattern) 是一种行为型设计模式。定义如下&#xff1a; 避免将一个请求的发送者与接收者耦合在一起&#xff0c;让多个对象都有机会处理请求。将接收请求的对象连接成一条链&#xff0c;并且沿着这条链传递请求&…

samout 最新版本state 逐层控制加速收敛

代码 import torch import numpy as npclass MaxState(torch.nn.Module):def __init__(self, hidden_dim, heads, win):super(MaxState, self).__init__()assert hidden_dim % heads 0, "Hidden size must be divisible by the number of heads."self.head_size h…

【C++深度学习】多态(概念虚函数抽象类)

✨ 疏影横斜水清浅&#xff0c;暗香浮动月黄昏 &#x1f30f; &#x1f4c3;个人主页&#xff1a;island1314 &#x1f525;个人专栏&#xff1a;C学习 &#x1f680; 欢迎关注&#xff1a;&#x1f44d;点赞 &…

第2章 大话 ASP.NET Core 入门

第1章 框架学习的基石与实战策略 链接 第2章 大话 ASP.NET Core 入门 1.什么是ASP.NET Core框架 ASP.NET Core是一个超级棒的框架&#xff0c;它是免费的&#xff0c;你可以在任何主流的系统上&#xff0c;比如Windows、Linux或macOS上使用它&#xff0c;而且它是完全开放源…

appium环境准备

前言: 本系列教程会从软件的基本安装开始,最终目的是通过完成几个案例后, 大家实现自由抓取App中想要的资源。 本系列以后会更的: Appium基本使用及控制真机及安卓模拟器Mitmproxy抓包工具的基本使用Fiddler抓包软件的基本使用 了解了以上的基本操作,我们就可进行手机资源…

Splunk Enterprise路径遍历漏洞风险通告

今日&#xff0c;亚信安全CERT监控到安全社区研究人员发布安全通告&#xff0c;披露了Splunk Enterprise 路径遍历漏洞(CVE-2024-36991)。该漏洞发生在9.2.0<version<9.2.2&#xff0c;9.1.0<version<9.1.5&#xff0c;以及9.0.0<version<9.0.10的windows版本…

3102.力扣每日一题7/9 Java(TreeMap)

博客主页&#xff1a;音符犹如代码系列专栏&#xff1a;算法练习关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 目录 TreeMap详解 解题思路 解题方法 时间复杂度 空间复杂度 Code T…

【Python】 已解决:ModuleNotFoundError: No module named…

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;ModuleNotFoundError: No module named… 一、分析问题背景 在使用Python进行开发时&#xff0c;有时会遇到“ModuleNotFoundError: No module named…”这样的…

android gradle开发基础

Android Gradle开发基础涉及多个方面&#xff0c;包括Gradle的基本概念、环境配置、构建脚本的编写、任务与插件的使用等。以下是对这些方面的详细介绍&#xff1a; 一、Gradle基础 1. Gradle简介 Gradle是一个开源的构建自动化系统&#xff0c;专注于灵活性和性能。它支持多…

洞察与理解:自闭症儿童的典型行为特征解析

作为星贝育园自闭症儿童康复中心的一名专业教师&#xff0c;我深知理解自闭症儿童的行为特征对于早期识别、干预和提供恰当支持至关重要。自闭症&#xff0c;或称孤独症谱系障碍&#xff08;Autism Spectrum Disorder, ASD&#xff09;&#xff0c;是一组影响个体社交互动、沟通…

创新设计策略:提升大屏幕可视化设计效果的关键方法

随着科技的不断发展和数据量的快速增长&#xff0c;数据可视化大屏在各个行业中的应用越来越广泛&#xff0c;可以帮助人们更好地理解和分析数据&#xff0c;可视化大屏设计也因此成了众多企业的需求。但很多设计师对可视化大屏设计并不了解&#xff0c;也不知道如何制作可视化…

谁说forEach不支持异步代码,只是你拿不到异步结果而已

在前面探讨 forEach 中异步请求后端接口时&#xff0c;很多人都知道 forEach 中 async/await 实际是无效的&#xff0c;很多文章也说&#xff1a;forEach 不支持异步&#xff0c;forEach 只能同步运行代码&#xff0c;forEach 会忽略 await 直接进行下一次循环… 当时我的理解…

dify/api/models/tool.py文件中的数据表

源码位置&#xff1a;dify/api/models/tool.py ToolProvider 表结构 字段英文名数据类型字段中文名字备注idStringUUIDIDUUID生成tenant_idStringUUID租户ID非空tool_nameString工具名称非空encrypted_credentialsText加密凭证可为空is_enabledBoolean是否启用默认值为 false…

[GICv3] 1.引言Introduction

基本概念 通用中断控制器 (GIC) 从外设获取中断&#xff0c;确定它们的优先级&#xff0c;然后将它们传送到适当的处理器内核。 下图了为一个 GIC 从 n 个不同的外设获取中断&#xff0c;并将它们分配给两个不同的处理器。 ​​ GCI(Generic Interrupt Controller)&#xff0c…

Caused by: java.lang.NoSuchMethodError: com.squareup.javapoet.MethodSpec

导入第三方module运行项目报&#xff1a; Caused by: java.lang.NoSuchMethodError: com.squareup.javapoet.MethodSpec$Builder.addComment(Ljava/lang/String;[Ljava/lang/Object;)Lcom/squareup/javapoet/MethodSpec$Builder; Caused by: java.lang.RuntimeException: Cann…

IPython的交互式命令行:交互式命令行界面

IPython的交互式命令行&#xff1a;交互式命令行界面 介绍 IPython是一款功能强大的交互式命令行工具&#xff0c;它极大地增强了Python编程的体验。通过提供即时反馈和动态探索功能&#xff0c;IPython帮助初学者更快速、更直观地掌握Python编程技能。本指南将详细介绍IPyth…