制作chrome插件

Posted 木头耕田

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了制作chrome插件相关的知识,希望对你有一定的参考价值。

chrome插件制作

我一开始看网上教程的时候看的很懵,大家的chrome插件的教程都大多是给你个demo看看,看完了也不知道该怎么写自己想要的插件。

先推荐几个网址:

http://www.ituring.com.cn/article/110929  图灵社区的比较正规、可以出书的chrome插件学习文档(推荐)

http://open.chrome.360.cn/extension_dev/overview.html  360翻译的chrome插件手册(但是比较老,很久没更新)

https://developer.chrome.com/extensions (chrome自己的手册,缺点是需要FQ,一些api到这边来查比较好的)


 

在制作一个chrome插件过程中,manifest.json文件是非常重要的,它是chrome解读你插件需要chrome如何配合你,如何一点点实现的关键。大多教程里很少讲的很细,我这边不一定全,但是可以供参考。

做拓展插件:https://developer.chrome.com/extensions/manifest

做页面app:https://developer.chrome.com/apps/manifest

{
    "manifest_version": 2,
    "name": "哈哈哈",
    "version": "1.0",
    "description": "哈哈哈",
    "content_scripts": [
        {
            "matches": ["*://www.baidu.com/"],
            "js": ["do_something_in_baidu.js"]
        }
    ]
}

manifest大致就是上面这种样子的一个文件,然后细讲属性:

manifest_version:2             // 这个只能是2,貌似想在可用的版本就是2

name、author、book            // 应该都看得懂吧...不解释

version                               // 你插件的版本号(manifest_version、name、version是每一个manifest都必须要有的,不能缺)

default_locale                      // 默认文字,一般填en

description                          // 描述、简述

icons                                  // 一般提供16px、48px、128px三种,以对象格式声明

permission                          // 这个一般是允许什么网站通过你的插件(貌似是这个意思...错了可以帮我指出错误..)

browser_action                    // 

content_scripts                   // 属性值为数组类型,数组的每个元素可以包含matches、exclude_matches、css、js、run_at、all_frames、include_globs和exclude_blobs等属性。

                                        // 其中matches属性定义了哪些页面会被注入脚本,exclude_matches则定义了哪些页面不会被注入脚本,css和js对应要注入的样式表和javascript,run_at定义了何时进行注入,all_frames定义脚本是否会注入到嵌入式框架中,include_globs和exclude_globs则是全局URL匹配,最终脚本是否会被注入由matches、exclude_matches、include_globs和exclude_globs的值共同决定

                                        // 简单的说,如果URL匹配matches值的同时也匹配include_globs的值,会被注入;如果URL匹配exclude_matches的值或者匹配exclude_globs的值,则不会被注入。

                                        // content_scripts中的脚本只是共享页面的DOM1,而并不共享页面内嵌JavaScript的命名空间。也就是说,如果当前页面中的JavaScript有一个全局变量a,content_scripts中注入的脚本也可以有一个全局变量a,两者不会相互干扰。当然你也无法通过content_scripts访问到页面本身内嵌JavaScript的变量和函数。

 


 

长期更新~~~

以上是关于制作chrome插件的主要内容,如果未能解决你的问题,请参考以下文章

制作一个简单的百度网盘在线视频加速的chrome插件

如何制作chrome插件,可以用jquery修改已知网页DOM

制作chrome插件/扩展程序,禁止谷歌浏览器访问某些网站

Chrome-Devtools代码片段中的多个JS库

vscode 插件推荐

vs code 插件推荐