访问网站的时候,最烦的就是一些弹窗和广告。于是,就想着能不能在访问特定网站的时候,执行一段js脚本,去除页面的广告。于是乎,好像 chrome 插件可以实现。

这里,以 百度 的网站为例

新建 simple01 文件夹:

内部文件结构如图:

主要是 manifest.json的配置:

{
"manifest_version":2,
"version":"1.0.0",
"name":"myAdSafe",
"description":"百度插件",
"browser_action":{},
"permissions":["*://www.baidu.com/"],
"background":{},
"content_scripts":[{
"matches":["*://www.baidu.com/"],
"js":["index.js"],
"run_at":"document_end",
"all_frames":true }] }

  

manifest_version

manifest文件内容格式的版本,目前版本为2,本次介绍的格式都是基于该版本的.

version

该浏览器插件的版本。

name

该浏览器插件的名称。

description

该浏览器插件的描述信息。

browser_action

浏览器插件的工具栏图标。

permissions

浏览器插件需要的权限,支持正则匹配。google对于安全性是相当重视,该配置也是重要的环节!

background

浏览器插件后端程序,大部分浏览器插件api,以及https网站都需要后端程序来完成。如:获取浏览器插件的版本号。

content_scripts

页面注入配置。例如:向域名为xx的注入一串输出hello world的脚本,就需要该配置,同时也需要配置拥有该域名xx的权限。

页面如何注入scripts文件

1.manifest.json  permissions配置

"permissions":["*://www.baidu.com/"],

  

2.manifest.json content_scripts配置

"content_scripts":[{
"matches":["*://www.baidu.com/"],
"js":["index.js"],
"run_at":"document_end",
"all_frames":true }]

  

    matches: 需要注入的脚本页面的URL,支持正则表达式。

    js: 注入的脚本文件,相对路径。

    run_at: 注入的位置,document_start文档的开始,document_idel文档的中间 , document_end文档的末尾。

    all_frames: 是否全frame注入,比如页面使用了iframe或者frame。

3.编写  index.js

   语法为javascript,当然你也可以引入jquery,方式和  index.js 一样

index.js 中输入内容:

document.getElementById("kw").value = "插件自动输入";  

其主要是在 浏览器打开百度的时候,输入框自动填充内容

4.安装插件进入浏览器:

  

和安装其他插件一样,直接在上面页面,打开开发模式。。然后直接将,simple01 文件拖入

浏览器即可。

5、打开 百度:

注意: 网址配置后面一定要有斜杆,否则会报错

既然能够开发插件了,那么就可以针对自己常用的网站,,,进行自己的定制脚本了

更多内容可以查看:  https://www.cnblogs.com/liuxianan/p/chrome-plugin-develop.html

js写一个chrome 插件的更多相关文章

  1. 动手做第一个Chrome插件

    Chrome插件是令人惊讶的简单,一旦你弄懂它的工作和实现原理.它是由一部分HTML,一部分Js,然后混合了一个叫做manifest.json的Json文件组合而成的整体.这意味着你可以使用你最擅长的 ...

  2. chrome 浏览器插件开发(一)—— 创建第一个chrome插件

    最近在开发一个chrome插件,在网上找到了一些的文章,虽说按照文章可以写出对应的例子,但若要进行实际开发,发现还是有不少文章中没有的坑.下面我将结合我在开发过程中遇到的几个方面,对这些坑做一下补充. ...

  3. 如何通过写一个chrome扩展启动本地程序

    @(编程) [toc] 本文介绍如何利用Chrome 的插件, 从我们的一个网站中启动一个我们的本地程序.本文的环境是windows10,本文的例子是通过点击网页上的一个button,调用本地的wor ...

  4. 为PhoneGap写一个android插件

    为PhoneGap写一个android插件,要怎么做? 其实这句话应该反过来说,为android写一个PhoneGap插件,要怎么做? 这里以最简单的Hello World!为例,做个说明: 1.第一 ...

  5. 分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”

    这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业 ...

  6. 如何写一个jquery插件

      本文总结整理一下如何写一个jquery插件?虽然现今各种mvvm框架异常火爆,但是jquery这个陪伴我们成长,给我们带来很多帮助的优秀的库不应该被我们抛弃,写此文章,作为对以往欠下的笔记的补充, ...

  7. JS写一个简单日历

    JS写一个日历,配合jQuery操作DOM <!DOCTYPE html> <html> <head> <meta charset="UTF-8&q ...

  8. 前端与编译原理——用JS写一个JS解释器

    说起编译原理,印象往往只停留在本科时那些枯燥的课程和晦涩的概念.作为前端开发者,编译原理似乎离我们很远,对它的理解很可能仅仅局限于"抽象语法树(AST)".但这仅仅是个开头而已.编 ...

  9. 如何使用 js 写一个正常人看不懂的无聊代码

    如何使用 js 写一个正常人看不懂的无聊代码 代码质量, 代码可读性, 代码可维护性, clean code WAT js WTF https://www.destroyallsoftware.com ...

随机推荐

  1. python2 安装 MySQL-python

    yum -y install mysql-devel libxml2 libxml2-dev libxslt* zlib gcc openssl yum install gcc libffi-deve ...

  2. Android键盘显示和隐藏

    一.不自动弹出键盘: 带有EditText控件的在第一次显示的时候会自动获得focus,并弹出键盘,如果不想自动弹出键盘,有两种方法: 方法一:在mainfest文件中把对应的activity设置 a ...

  3. PBRT笔记(5)——相机模型

    Camera class Camera { public: //实现相机在一定时间内进行特定的运动 AnimatedTransform CameraToWorld; //快门开/关数据,可以用于计算动 ...

  4. 2017-2018 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2017)

    A. Cakey McCakeFace 按题意模拟即可. #include<stdio.h> #include<iostream> #include<string.h&g ...

  5. 10.1jihe

    两种操作,1是加入数字,二是找最接近的 用set或者平衡二叉树就好了 只写了二叉树的,套版子就好 #include<bits/stdc++.h> #define sf scanf #def ...

  6. Python自学知识点----Day01

    Linux 次方运算符** 操作系统:1).直接操纵硬件 2).将操纵硬件封装成系统调用,利用应用程序进行调用 操作系统:windows  用户群体大 macos      适用开发人员 Linux  ...

  7. PHP算法学习(2) 轮训加权算法

    2019年1月8日16:10:51 svn地址:svn://gitee.com/zxadmin/live_z    代码在code里面 <?php /* * 加权轮训算法 * * * $arr ...

  8. Docker 试用

    Docker还是从.net core 了解的 百度百科 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可 ...

  9. Swift之Swift编码规范

    swift 支持的 markdown 语法. 1. 编码格式 1.1 使用二元运算符(+, -,==, 或->)的前后都需要添加空格 let value = + 1.2 在逗号后面加一个空格 l ...

  10. Confluo: Distributed Monitoring and Diagnosis Stack for High-speed Networks

    https://rise.cs.berkeley.edu/blog/confluo-millisecond-level-queries-on-large-scale-streaming-data/ht ...