基于Python开发chrome插件的方法分析


Posted in Python onJuly 07, 2018

本文实例讲述了基于Python开发chrome插件的方法。分享给大家供大家参考,具体如下:

谷歌Chrome插件是使用HTML、JavaScript和CSS编写的。如果你之前从来没有写过Chrome插件,我建议你读一下这个。在这篇教程中,我们将教你如何使用Python代替JavaScript。

创建一个谷歌Chrome插件

首先,我们必须创建一个清单文件:manifest.json。

{
 "manifest_version": 2,
 "name": "Python Chrome Plugin",
 "description": "This extension runs Python code.",
 "version": "1.0",
 "browser_action": {
  "default_icon": "icon.png",
  "default_popup": "popup.html"
 },
 "permissions": [
  "activeTab",
  "https://ajax.googleapis.com/"
 ]
}

然后创建一个名为popup.html的文件:

<!doctype html>
<!--
 This page is shown when the extension button is clicked, because the
 "browser_action" field in manifest.json contains the "default_popup" key with
 value "popup.html".
 -->
<html>
 <head>
  <title>Getting Started Extension's Popup</title>
  <style>
   body {
    font-family: "Segoe UI", "Lucida Grande", Tahoma, sans-serif;
    font-size: 100%;
   }
   #status {
    /* avoid an excessively wide status text */
    white-space: pre;
    text-overflow: ellipsis;
    overflow: hidden;
    max-width: 400px;
   }
  </style>
  <!--
   - JavaScript and HTML must be in separate files: see our Content Security
   - Policy documentation[1] for details and explanation.
   -
   - [1]: https://developer.chrome.com/extensions/contentSecurityPolicy
   -->
  <script src="popup.js"></script>
 </head>
 <body>
  <div id="status"></div>
  <img id="image-result" hidden>
 </body>
</html>

最后得到一个图标,并保存为icon.png。打开chrome://extensions,点击开发者模式。点击“加载未打包扩展程序”,选择文件夹,点击OK。

为Chrome扩展程序添加Python

现在你拥有了最基本的权利,我们可以在代码中添加Python。为了能在一个浏览器中运行Python,你有很多个选择,包括Brython和emcascripten。我们决定使用Brython。我们将从一个服务器运行Brython脚本。改变popup.html的内容:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta charset="iso-8859-1">
<style>
body {
  margin: 0 !important;
  padding: 0 !important;
  width: 800;
}
#frame {
  overflow: hidden;
  width:790;
  height:324;
}
</style>
</head>
<body onLoad="">
<iframe src=http://brython.info/console.html id="frame" seamless="seamless" scrolling="no"></iframe>
</body>
</html>

重启下你的插件,你就会在你的谷歌Chrome浏览器中得到一个Python(Brython)解释器。

基于Python开发chrome插件的方法分析

运行你自己的脚本

为了能够运行你自己的脚本,简单地修改一下popup.html框架中的url即可:

<iframe src="BRYTHON SCRIPT URL" id="frame" seamless="seamless" scrolling="no"></iframe>

这个脚本应该运行在你自己的服务器上。你可以从网上运行任意的Brython脚本。利用Brython,你可以简单地在脚本标签中输入Python代码。

总结:

Chrome插件是使用HTML、JavaScript和CSS创建的。我们想知道在谷歌Chrome插件中能否使用Python代码。我们最终得到了一个浏览器中的Python解释器和执行Python脚本的能力。记住,这只是个实现性的结果,只是一个玩具,在这一点上,我不建议你将所有的插件都移植或建立在Brython上。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python使用cookielib库示例分享
Mar 03 Python
python中使用xlrd、xlwt操作excel表格详解
Jan 29 Python
Python常用小技巧总结
Jun 01 Python
Python实现中文数字转换为阿拉伯数字的方法示例
May 26 Python
python 二分查找和快速排序实例详解
Oct 13 Python
完美解决安装完tensorflow后pip无法使用的问题
Jun 11 Python
python print输出延时,让其立刻输出的方法
Jan 07 Python
python3实现点餐系统
Jan 24 Python
Python3之字节串bytes与字节数组bytearray的使用详解
Aug 27 Python
详解Python在使用JSON时需要注意的编码问题
Dec 06 Python
python属于跨平台语言码
Jun 09 Python
python本地文件服务器实例教程
May 02 Python
Python实现基于C/S架构的聊天室功能详解
Jul 07 #Python
Python实现的txt文件去重功能示例
Jul 07 #Python
Django 多语言教程的实现(i18n)
Jul 07 #Python
python利用requests库进行接口测试的方法详解
Jul 06 #Python
python生成密码字典的方法
Jul 06 #Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
Jul 06 #Python
使用python中的in ,not in来检查元素是不是在列表中的方法
Jul 06 #Python
You might like
ThinkPHP3.1查询语言详解
2014/06/19 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
php中explode的负数limit用法分析
2015/02/27 PHP
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
JQUERY 对象与DOM对象之两者相互间的转换
2009/04/27 Javascript
jquery 学习之二 属性(html()与html(val))
2010/11/25 Javascript
javascript:;与javascript:void(0)使用介绍
2013/06/05 Javascript
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
基于jquery实现三级下拉菜单
2016/05/10 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
微信小程序实现实时圆形进度条的方法示例
2017/02/24 Javascript
20行js代码实现的贪吃蛇小游戏
2017/06/20 Javascript
深入理解JavaScript 中的匿名函数((function() {})();)与变量的作用域
2018/08/28 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
jquery树形插件zTree高级使用详解
2019/08/16 jQuery
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
使用vue制作滑动标签
2019/09/21 Javascript
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
Python中使用异常处理来判断运行的操作系统平台方法
2015/01/22 Python
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
python list排序的两种方法及实例讲解
2017/03/20 Python
Python pymongo模块用法示例
2018/03/31 Python
浅析Python数据处理
2018/05/02 Python
解决已经安装requests,却依然提示No module named requests问题
2018/05/18 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
html5使用canvas画一条线
2014/12/15 HTML / CSS
大学生求职中的自我评价
2013/10/01 职场文书
光荣入党自我鉴定
2014/01/22 职场文书
反洗钱宣传活动总结
2014/08/26 职场文书
2015年手术室工作总结
2015/05/11 职场文书
laravel ajax curd 搜索登录判断功能的实现
2021/04/17 PHP
一文带你探究MySQL中的NULL
2021/11/11 MySQL
浅谈JavaScript作用域
2021/12/06 Javascript
python三子棋游戏
2022/05/04 Python