chrome extension demos
chrome extension demos
demo
https://github.com/hartleybrody/buzzkill/blob/master/bootstrap.js
https://github.com/hartleybrody/buzzkill/blob/master/manifest.json
// when the extension is first installed
chrome.runtime.onInstalled.addListener(function(details) {
chrome.storage.sync.set({ clean_news_feed: true });
});
// listen for any changes to the URL of any tab.
chrome.tabs.onUpdated.addListener(function(id, info, tab) {
if (tab.url.toLowerCase().indexOf("facebook.com") > -1) {
chrome.pageAction.show(tab.id);
}
});
// update the icon when the user's settings change
// chrome.storage.onChanged.addListener(function(changes, areaName){
// alert("changed settings");
// console.log("changed settings");
// if (localStorage["clean_news_feed"] == "true"){
// path = "active-icon.jpeg";
// } else {
// path = "inactive-icon.jpeg";
// }
// chrome.tabs.getCurrent( function(tab){
// chrome.pageAction.setIcon({
// "tabId": tab.id,
// "path": path
// });
// });
// });
chrome.runtime.onInstalled.addListener(function() {
chrome.contextMenus.create({
id: "sampleContextMenu",
title: "Sample Context Menu",
contexts: ["selection"]
});
});
chrome.runtime.onInstalled.addListener(function() {
chrome.contextMenus.create({
id: "sampleContextMenu",
title: "Sample Context Menu",
contexts: ["selection"]
});
});
// This will run when a bookmark is created.
chrome.bookmarks.onCreated.addListener(function() {
// do something
});
chrome.runtime.onMessage.addListener(function(message, sender, reply) {
chrome.runtime.onMessage.removeListener(event);
});
//
content script
chrome.runtime.onMessage.addListener(
function(message, callback) {
if (message == “changeColor”){
chrome.tabs.executeScript({
code: 'document.body.style.backgroundColor="orange"'
});
}
});
chrome.runtime.onMessage.addListener(
function(message, callback) {
if (message == “runContentScript”){
chrome.tabs.executeScript({
file: 'contentScript.js'
});
}
});
github jira chrome extensions
https://github.com/RobQuistNL/chrome-github-jira/blob/master/src/options.js
chrome.storage.sync.get({}, function() {
//
});
chrome.storage.sync.set({}, function() {
//
});
chrome.storage.sync.remove(['jiraUrl', 'prTemplate']);
https://github.com/maxday/jira-issue-easyCopy/blob/master/content.js
chrome.runtime.onMessage.addListener(function(msg, sender, sendResponse) {
var issueNumber = document.getElementById("key-val").textContent;
var issueDescription = document.getElementById("summary-val").textContent;
sendResponse(issueNumber + " - " + issueDescription);
});
https://github.com/maxday/jira-issue-easyCopy/blob/master/background.js
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.sendMessage(tab.id, { text: "report_back" }, sendToClipbord);
});
function sendToClipbord(myString) {
var input = document.createElement('textarea');
document.body.appendChild(input);
input.value = myString;
input.focus();
input.select();
document.execCommand('Copy');
input.remove();
}
https://github.com/taylorfoss89/Jira-Chrome-Extension/blob/master/jiraExtension/popup.js
chrome.tabs.update({
url: "https://contegixapp1.livenation.com/jira/browse/" + jiraGroup + '-' + jiraNumber
});
https://github.com/hbmartin/chrome-jira/blob/master/background.js
chrome.browserAction.setBadgeText({text: count.toString()});
chrome.browserAction.setBadgeBackgroundColor({color: [20, 20, 20, 230]});
chrome.windows.getAll({populate:true}, function(winData) {
//
});
// Handle Jira keyword in omnibox
chrome.omnibox.onInputEntered.addListener(function(text) {
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.update(tab.id, {
url: jira_url + "/secure/QuickSearch.jspa?searchString=" + text
});
});
});
chrome.extension.onMessage.addListener(function(msg,sender,sendResponse){
if (msg == "updateJira"){
console.log("async update");
setTimeout(updateJira, 2);
}
});
https://github.com/hbmartin/chrome-jira/blob/master/common.js
https://github.com/hbmartin/chrome-jira/blob/master/manifest.json
https://github.com/hbmartin/chrome-jira/blob/master/options.js
chrome.extension.sendMessage("updateJira");
https://github.com/hbmartin/chrome-jira/blob/master/popup.js
chrome.extension.getBackgroundPage().updateJira();
window.open(chrome.extension.getURL("options.html"));
chrome.extension.sendMessage("updateJira");
https://github.com/joshuaheng/jira-github-chrome/blob/master/background.js
chrome.tabs.onUpdated.addListener(function(tabId, info, tab) {
if (info.status == "complete") {
chrome.tabs.executeScript(tabId, {file: 'content.js'});
}
});
https://github.com/joshuaheng/jira-github-chrome/blob/master/content.js
(() => {
const $title = document.querySelector('.js-issue-title');
if (!$title) {
return;
}
chrome.storage.local.get(['jiraUrl', 'inlineLinks'], (options) => {
const jiraUrl = !!options.jiraUrl ?
options.jiraUrl :
'https://jira.nextcapital.com';
let title = $title.innerHTML.replace(/(<a[^>]+>|⬆︎|<\/a>)/g, '');
title.match(/[a-zA-Z0-9-]+(?=[\],\s\d#]*\])/g).forEach((tag) => {
const url = `${jiraUrl}/browse/${tag}`;
const attrs = `href="${url}" target="_blank"`;
const replacement = options.inlineLinks === false ?
`${tag}<a ${attrs}>⬆︎</a>` :
`<a ${attrs}>${tag}</a>`;
title = title.replace(tag, replacement);
});
$title.innerHTML = title;
});
})();
https://github.com/joshuaheng/jira-github-chrome/blob/master/options.js
const $jiraUrlInput = document.querySelector('#jira-url');
const $inlineLinksInput = document.querySelector('#inline-links');
chrome.storage.local.get(['jiraUrl', 'inlineLinks'], (options) => {
if (!!options.jiraUrl) {
$jiraUrlInput.value = options.jiraUrl;
}
if (options.inlineLinks !== false) {
$inlineLinksInput.setAttribute('checked', 'checked');
}
});
$jiraUrlInput.addEventListener('change', () => {
chrome.storage.local.set({ jiraUrl: $jiraUrlInput.value });
});
$inlineLinksInput.addEventListener('change', () => {
chrome.storage.local.set({ inlineLinks: $inlineLinksInput.checked });
});
chrome extension demos的更多相关文章
- Chrome Extension 检查视图(无效)处理方法
最近闲来无事,简单看了下Chrome扩展的开发,并且开发一个小小的翻译插件(TranslateBao)作为练手,开发细节不详述了,如果有新学习chrome extension开发的新人,可以参考源码, ...
- 开发Chrome Extension截取你微博的帐号密码
Google允许开发者对Chrome浏览器做扩展,所以有了之前火爆的12306抢票软件,我 也用它抢过票,一直很好奇它怎么注入js到12306上面的.这周有空研究了下Chrome Extension, ...
- chrome extension overview
目录 什么是扩展............................................................................................ ...
- 打包Egret游戏为Chrome extension
今天,本来是打算做一个Chrome扩展去爬取网站base64编码图片的. 在跟着图灵社区<Chrome扩展及应用开发>敲demo代码的过程中,发现chrome的扩展的结构理论上可以兼容所有 ...
- Google Chrome Native Messaging开发实录(二)Chrome Extension扩展
接上一篇<Google Chrome Native Messaging开发实录(一)背景介绍>的项目背景,话不多说,有关Chrome Extension介绍和文档就不展开了,直接上代码. ...
- Chrome Extension 实战
想起个问题,线上项目js要有bug,怎么进行调试修改. ------------- 想起来,方法应该是,拦截线上的js的请求,转到本地代码上进行调试... ------------- 网上看到 Chr ...
- 解决chrome extension无法下载的问题
由于GFW把谷歌应用商店给屏蔽了,下载chrome扩展变得很困难. 我使用的是版本30.0.1599.101 m. 那么你需要做的第一个处理是,修改host文件,保证chrome应用商店可以登录.如下 ...
- 一起来做Chrome Extension《搭个架子》
CEF - A simple Chrome Extension development falsework CEF是一个简单的Chrome Extension开发脚手架,它有如下功能: 模块化的结构, ...
- 一起来做Chrome Extension《一些问题》
目录 Unchecked runtime.lastError: The message port closed before a response wa received. 使用 eval Conte ...
随机推荐
- 闰年相关的问题v3.0——计算有多少闰年
# include<stdio.h>int main(){ int a,b,i; int sum = 0; printf("Input your birth year:" ...
- 1的个数 南阳acm514
1的个数 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 给你两个数a和b,你的任务是计算出1在a和b之间出现的次数,比如说,如果a=1024,b=1032,那么a和 ...
- 快排(golang实现) 递归方法
递归方法,逻辑简洁清晰.这个算法还是很重要的,需要重点记忆理解,面试经常考手写.据说是与傅里叶变换等并称“20世纪十大算法”.https://blog.csdn.net/v_JULY_v/articl ...
- (数据科学学习手札37)ggplot2基本绘图语法介绍
一.简介 ggplot2是R语言中四大著名绘图框架之一,且因为其极高的参数设置自由度和图像的美学感,即使其绘图速度不是很快,但丝毫不影响其成为R中最受欢迎的绘图框架:ggplot2的作者是现任Rstu ...
- [原创]用python检测LVS real server状态实现HTTP高可用
import httplib import os import time def check_http(i): try: conn=httplib.HTTPConnection(i, 80, time ...
- 6 生成器 yield 协程
1.生成器 ----> 1 b = [x*2 for x in range(100000000000)] MemoryError: 想生成一个存放很多数据的列表,但是又不想内存占用太多 每次用一 ...
- Linux命令应用大词典-第13章 用户和组群管理
13.1 useradd:创建用户账户 13.2 adduser:创建用户账户 13.3 lnewusers:创建用户账户 13.4 usermod:修改用户账户 13.5 userdel:删除用户账 ...
- Siki_Unity_1-9_Unity2D游戏开发_Roguelike拾荒者
Unity 1-9 Unity2D游戏开发 Roguelike拾荒者 任务1:游戏介绍 Food:相当于血量:每走一步下降1,吃东西可以回复(果子10药水20),被怪物攻击会减少中间的障碍物可以打破, ...
- Java开发工程师(Web方向) - 03.数据库开发 - 第3章.SQL注入与防范
第3章--SQL注入与防范 SQL注入与防范 经常遇到的问题:数据安全问题,尤其是sql注入导致的数据库的安全漏洞 国内著名漏洞曝光平台:WooYun.org 数据库泄露的风险:用户信息.交易信息的泄 ...
- Hadoop源码解析 1 --- Hadoop工程包架构解析
1 Hadoop中各工程包依赖简述 Google的核心竞争技术是它的计算平台.Google的大牛们用了下面5篇文章,介绍了它们的计算设施. GoogleCluster: http:// ...