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的更多相关文章

  1. Chrome Extension 检查视图(无效)处理方法

    最近闲来无事,简单看了下Chrome扩展的开发,并且开发一个小小的翻译插件(TranslateBao)作为练手,开发细节不详述了,如果有新学习chrome extension开发的新人,可以参考源码, ...

  2. 开发Chrome Extension截取你微博的帐号密码

    Google允许开发者对Chrome浏览器做扩展,所以有了之前火爆的12306抢票软件,我 也用它抢过票,一直很好奇它怎么注入js到12306上面的.这周有空研究了下Chrome Extension, ...

  3. chrome extension overview

    目录 什么是扩展............................................................................................ ...

  4. 打包Egret游戏为Chrome extension

    今天,本来是打算做一个Chrome扩展去爬取网站base64编码图片的. 在跟着图灵社区<Chrome扩展及应用开发>敲demo代码的过程中,发现chrome的扩展的结构理论上可以兼容所有 ...

  5. Google Chrome Native Messaging开发实录(二)Chrome Extension扩展

    接上一篇<Google Chrome Native Messaging开发实录(一)背景介绍>的项目背景,话不多说,有关Chrome Extension介绍和文档就不展开了,直接上代码. ...

  6. Chrome Extension 实战

    想起个问题,线上项目js要有bug,怎么进行调试修改. ------------- 想起来,方法应该是,拦截线上的js的请求,转到本地代码上进行调试... ------------- 网上看到 Chr ...

  7. 解决chrome extension无法下载的问题

    由于GFW把谷歌应用商店给屏蔽了,下载chrome扩展变得很困难. 我使用的是版本30.0.1599.101 m. 那么你需要做的第一个处理是,修改host文件,保证chrome应用商店可以登录.如下 ...

  8. 一起来做Chrome Extension《搭个架子》

    CEF - A simple Chrome Extension development falsework CEF是一个简单的Chrome Extension开发脚手架,它有如下功能: 模块化的结构, ...

  9. 一起来做Chrome Extension《一些问题》

    目录 Unchecked runtime.lastError: The message port closed before a response wa received. 使用 eval Conte ...

随机推荐

  1. C语言实现冒泡排序算法

    新人新气象,又一个学习C的新人来了. 冒泡排序,基础中的基础,原理不啰嗦了. 代码中display()为数组展示函数,sort_bubble()为直接实现排序,details()为带动画展示. #in ...

  2. Lambda表达式的语法与如何使用Lambda表达式

    Lambda表达式是对象,是一个函数式接口的实例 如何来写Lambda表达式? 看参数 看返回值 代码实例1: package day2; import jdk.nashorn.internal.co ...

  3. ggplot2画简单的heatmap

    gg_heatmap gg_heatmap PeRl ggplot2 heatmap 偶然的机会,发现ggplot2画的heatmap也挺好看的,除了不能画出聚类树来(手动滑稽). 随意新建了两个矩阵 ...

  4. [Cracking the Coding Interview] 4.1 Route Between Nodes 节点间的路径

    Given a directed graph, design an algorithm to find out whether there is a route between nodes. 这道题让 ...

  5. apache和IIS共存,服务器对外统一使用80端口

    apache和IIS共用80端口为了PHP与ASP各自的执行效率,要在服务器上安装iis与Apache,但是无法同时使用80端口,否则其中必定有一个启动不了.让它们共存的并且访问网站不需要加端口号,解 ...

  6. Unity AssetBundle工作流

    一.创建AssetBundle 1.在资源的Inspector视图下有一个AssetBundle的UI,第一个选项表示AssetBundle名称,第二个用于设置AssetBundle Variant, ...

  7. C if语句判断年龄

    #include <stdio.h> int main(int argc, char **argv) { //新建两个变量给变量赋值跟初始化:const int a=45;int c=0; ...

  8. 100. Remove Duplicates from Sorted Array && 101. Remove Duplicates from Sorted Array II [easy]

    这两题类似,所以放在一起,先看第一题: Description Given a sorted array, remove the duplicates in place such that each ...

  9. String和StringBuffer以及StringBuilder的区别

    今天在读<java编程思想>的时间,在看到String和StringBuffer以及StringBuffer这三个类的时间,做一个随笔小结,为自己的面试做好准备! 一:String,Str ...

  10. vue 与jq 的对比

    vue.react和angular,众所周知,他们是前端框架的3个大佬.这篇主要想对比一下用vue和用jq的区别,至于和其他框架的对比,我想vue的官网说的更为详细. 我算是独自用vue写过一个小型项 ...