Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Hideaki Miyake
1,149 views
Try Jetpack
Mozilla 勉強会@大阪での Jetpack についての発表資料
Technology
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 103
2
/ 103
3
/ 103
4
/ 103
5
/ 103
6
/ 103
7
/ 103
8
/ 103
9
/ 103
10
/ 103
11
/ 103
12
/ 103
13
/ 103
14
/ 103
15
/ 103
16
/ 103
17
/ 103
18
/ 103
19
/ 103
20
/ 103
21
/ 103
22
/ 103
23
/ 103
24
/ 103
25
/ 103
26
/ 103
27
/ 103
28
/ 103
29
/ 103
30
/ 103
31
/ 103
32
/ 103
33
/ 103
34
/ 103
35
/ 103
36
/ 103
37
/ 103
38
/ 103
39
/ 103
40
/ 103
41
/ 103
42
/ 103
43
/ 103
44
/ 103
45
/ 103
46
/ 103
47
/ 103
48
/ 103
49
/ 103
50
/ 103
51
/ 103
52
/ 103
53
/ 103
54
/ 103
55
/ 103
56
/ 103
57
/ 103
58
/ 103
59
/ 103
60
/ 103
61
/ 103
62
/ 103
63
/ 103
64
/ 103
65
/ 103
66
/ 103
67
/ 103
68
/ 103
69
/ 103
70
/ 103
71
/ 103
72
/ 103
73
/ 103
74
/ 103
75
/ 103
76
/ 103
77
/ 103
78
/ 103
79
/ 103
80
/ 103
81
/ 103
82
/ 103
83
/ 103
84
/ 103
85
/ 103
86
/ 103
87
/ 103
88
/ 103
89
/ 103
90
/ 103
91
/ 103
92
/ 103
93
/ 103
94
/ 103
95
/ 103
96
/ 103
97
/ 103
98
/ 103
99
/ 103
100
/ 103
101
/ 103
102
/ 103
103
/ 103
More Related Content
PDF
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
by
Hiroaki KOBAYASHI
PDF
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会
by
Jumpei Ogawa
PPTX
CakePHP+Smartyハイブリッドによるラクラク開発
by
Shinzo SAITO
PDF
swooleを試してみた
by
Yukihiro Katsumi
PDF
Jetpack Workshop
by
Hideaki Miyake
PDF
G*workshop 2011/11/22 Geb+Betamax
by
Nobuhiro Sue
ODP
Ci tutorial
by
Kazuaki Ueda
PDF
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
by
leverages_event
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
by
Hiroaki KOBAYASHI
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会
by
Jumpei Ogawa
CakePHP+Smartyハイブリッドによるラクラク開発
by
Shinzo SAITO
swooleを試してみた
by
Yukihiro Katsumi
Jetpack Workshop
by
Hideaki Miyake
G*workshop 2011/11/22 Geb+Betamax
by
Nobuhiro Sue
Ci tutorial
by
Kazuaki Ueda
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
by
leverages_event
What's hot
PDF
WordPressと外部APIとの連携
by
Hidekazu Ishikawa
PDF
Jetpack datastore入門
by
furusin
PDF
Pyramid入門
by
Atsushi Odagiri
PDF
MT meets PHP
by
純生 野田
PDF
WordPress関数の処理コストを考えよう
by
Naoki Matsuda
PPTX
Magento meet up Tokyo#1 for Design
by
Miho Nakano
PDF
Jqm20120210
by
cmtomoda
PDF
OSC京都2011
by
haganemetal
PDF
ソーシャルアプリ勉強会(第一回資料)配布用
by
Yatabe Terumasa
KEY
Google App Engine for Java
by
Takuya Tsuchida
KEY
Mojoliciousをウェブ制作現場で使ってみてる
by
jamadam
PDF
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
by
Tsuyoshi Yamamoto
PDF
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
by
Yusuke Ando
PDF
Django boodoo
by
泰 増田
PDF
JavaScript/CSS 2015 Autumn
by
Koji Ishimoto
PDF
Flask勉強会その1
by
Masato Kawamura
PPTX
実用裏方 Perl 入門
by
keroyonn
WordPressと外部APIとの連携
by
Hidekazu Ishikawa
Jetpack datastore入門
by
furusin
Pyramid入門
by
Atsushi Odagiri
MT meets PHP
by
純生 野田
WordPress関数の処理コストを考えよう
by
Naoki Matsuda
Magento meet up Tokyo#1 for Design
by
Miho Nakano
Jqm20120210
by
cmtomoda
OSC京都2011
by
haganemetal
ソーシャルアプリ勉強会(第一回資料)配布用
by
Yatabe Terumasa
Google App Engine for Java
by
Takuya Tsuchida
Mojoliciousをウェブ制作現場で使ってみてる
by
jamadam
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
by
Tsuyoshi Yamamoto
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
by
Yusuke Ando
Django boodoo
by
泰 増田
JavaScript/CSS 2015 Autumn
by
Koji Ishimoto
Flask勉強会その1
by
Masato Kawamura
実用裏方 Perl 入門
by
keroyonn
Viewers also liked
PPTX
New immune system of information security from CHINA by WooYun - CODE BLUE 2015
by
CODE BLUE
PPT
Vasculitis 2013
by
James Wei 魏正宗
PPTX
中国における情報セキュリティの新たな免疫システムの作り方 by WooYun - CODE BLUE 2015
by
CODE BLUE
PPTX
Lenvatinib-suppresses-angiogenesis-through-the-inhibition-of-both-the-vegfr-a...
by
Peertechz Publications
PDF
読書のススメ
by
Takuya Okamoto
PDF
HEOR/ HTA/ PRO and Clinical Regulatory
by
Robert Simons
PDF
HEOR and HTA for Market Access and Value Propositions
by
Robert Simons
PDF
nakihiro_rengo2015
by
Akihiro Nohara
PDF
免疫系統
by
a5589389
PPTX
岡山スマホアプリ開発もくもく会 #oso2016
by
Ikki Takahashi
PPS
調節性T細胞
by
Fast SiC Semiconductor Inc.
PDF
20160210中央会計インターンンシップ:チーム7 バングラデシュの初等教育事業
by
KodaiSakamotoChuo
PDF
島岡要 広島大歯・免疫学授業(2012年12月4日)Leukocyte Trafficking in Health and Diseases
by
BostonIDI
PDF
日外アソシエーツ データベースカンパニーの歩み
by
Japan Electronic Publishing Association
PPTX
2016-02 Toxicidades de los nuevos fármacos en cáncer renal
by
Martín Lázaro
PDF
Isa Pro Detail Bi
by
Peter Chan
PPT
疑似免疫缺陷immunodeficiency (郭和昌醫師)
by
Ho-Chang Kuo (郭和昌 醫師)
PDF
Drug Activity
by
Robert Simons
PDF
ASCO 2014 Highlights: Breast Cancer, Prostate Cancer; AI diagnosing
by
dianecleverley
New immune system of information security from CHINA by WooYun - CODE BLUE 2015
by
CODE BLUE
Vasculitis 2013
by
James Wei 魏正宗
中国における情報セキュリティの新たな免疫システムの作り方 by WooYun - CODE BLUE 2015
by
CODE BLUE
Lenvatinib-suppresses-angiogenesis-through-the-inhibition-of-both-the-vegfr-a...
by
Peertechz Publications
読書のススメ
by
Takuya Okamoto
HEOR/ HTA/ PRO and Clinical Regulatory
by
Robert Simons
HEOR and HTA for Market Access and Value Propositions
by
Robert Simons
nakihiro_rengo2015
by
Akihiro Nohara
免疫系統
by
a5589389
岡山スマホアプリ開発もくもく会 #oso2016
by
Ikki Takahashi
調節性T細胞
by
Fast SiC Semiconductor Inc.
20160210中央会計インターンンシップ:チーム7 バングラデシュの初等教育事業
by
KodaiSakamotoChuo
島岡要 広島大歯・免疫学授業(2012年12月4日)Leukocyte Trafficking in Health and Diseases
by
BostonIDI
日外アソシエーツ データベースカンパニーの歩み
by
Japan Electronic Publishing Association
2016-02 Toxicidades de los nuevos fármacos en cáncer renal
by
Martín Lázaro
Isa Pro Detail Bi
by
Peter Chan
疑似免疫缺陷immunodeficiency (郭和昌醫師)
by
Ho-Chang Kuo (郭和昌 醫師)
Drug Activity
by
Robert Simons
ASCO 2014 Highlights: Breast Cancer, Prostate Cancer; AI diagnosing
by
dianecleverley
Similar to Try Jetpack
PPTX
Jetpack Library 事始め
by
Tomohiro Kaizu
PDF
GitHub APIとfreshで遊ぼう
by
虎の穴 開発室
PDF
20130412 titanium meetupvol7
by
Hiroshi Oyamada
PDF
⑯jQueryをおぼえよう!その2
by
Nishida Kansuke
PDF
Firefox Add-on SDK 入門
by
Shoot Morii
PPTX
130329 perl casual_ruik
by
Rui Kimura
PDF
Jetpackをざっくり紹介
by
Yuki Kokubo
PDF
クロスブラウザ拡張ライブラリExtension.js
by
swdyh
KEY
WordPressプラグイン Jetpack って何だ?!
by
Yuji Nojima
Jetpack Library 事始め
by
Tomohiro Kaizu
GitHub APIとfreshで遊ぼう
by
虎の穴 開発室
20130412 titanium meetupvol7
by
Hiroshi Oyamada
⑯jQueryをおぼえよう!その2
by
Nishida Kansuke
Firefox Add-on SDK 入門
by
Shoot Morii
130329 perl casual_ruik
by
Rui Kimura
Jetpackをざっくり紹介
by
Yuki Kokubo
クロスブラウザ拡張ライブラリExtension.js
by
swdyh
WordPressプラグイン Jetpack って何だ?!
by
Yuji Nojima
Recently uploaded
PPTX
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
by
Ryuji Egashira
PDF
[2025 Rakuten Technology Conference] Daybreak for AI Agents
by
Woohyeok Kim
PPTX
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
by
Tetsuya Oi
PDF
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
by
Data Source
PDF
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
by
Data Source
PDF
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
by
Data Source
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
by
Ryuji Egashira
[2025 Rakuten Technology Conference] Daybreak for AI Agents
by
Woohyeok Kim
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
by
Tetsuya Oi
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
by
Data Source
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
by
Data Source
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
by
Data Source
Try Jetpack
1.
JetpackでFirefox
を拡張しよう 2010/02/20 mollifier http://d.hatena.ne.jp/mollifier/
2.
id:mollifier
3.
今日は Jetpack で Firefox
拡張が書けるよ うになって帰りましょう
4.
Jetpack とは 拡張を書く:基本編 拡張を書く:応用編 参考ページ
5.
Jetpack とは 拡張を書く:基本編 拡張を書く:応用編 参考ページ
6.
Firefox の 拡張機能(Addon) の一種
7.
追加で「拡張機能」 をインストールして 実行できるようにな る
8.
Jetpack 用の 拡張の例
9.
Jet Lagged http://jetpackgallery.moz illalabs.com/jetpacks/95 インストールページ
10.
Jet Lagged 選択部分を Google 翻訳で 翻訳する
11.
Google It! http://jetpackgallery.mozil lalabs.com/jetpacks/231 インストールページ
12.
Google It! 選択した単語を Google で 検索する
13.
TabGroup
Organizer http://jetpackgallery.mozill alabs.com/jetpacks/164 インストールページ
14.
TabGroup Organizer 今開いているタブ を保存して、 後から開き直せる
15.
このような 「Jetpack 用の 拡張機能」を Feature と呼ぶ
16.
Featureの特徴
17.
jQuery を使って サクサク書ける
18.
Firefox の UI
を 操作できる
19.
ステータスバーに ボタンを追加 右クリックメニューに 追加
20.
それでは Jetpack Feature の書き方 を見ていきましょう
21.
Jetpack とは 拡張を書く:基本編 拡張を書く:応用編 参考ページ
22.
Jetpack Feature の基本的な書き方を 押さえる
23.
その前に開発環境を そろえる
24.
必要なもの
Firefox Jetpack 本体 Firebug 好きなエディタ
25.
すぐに準備できる。 うれしい。
26.
1. Hello World
27.
jetpack.tabs.onReady(function() {
console.log("Hello World!"); });
28.
インストール用に HTML ページが必要
29.
<html> <head>
<!-- ここが大事 --> <link rel="jetpack" href="hello.js" name="Hello Jetpack" /> <title>Hello World</title> </head> <!-- 略 ... -->
30.
<link rel="jetpack"
href="hello.js" name="Hello Jetpack" /> href="Featureのパス" Web上に置いてある場合は http:// ... 形式で指定する name="Feature 名"
31.
jetpack.tabs.onReady(
// ここに関数を書くと // 新しいタブを開いた // ときに呼び出される );
32.
jetpack.tabs.onReady(
// Firebug の // コンソールに // 出力される console.log( "Hello World!"); );
33.
2. Hello Jetpack
in Statusbar
34.
ステータスバーに パネルを追加する例
35.
jetpack.statusBar.append({ html:
"<em>Hello</em>", width: 45, });
36.
HTML を直接書ける jetpack.statusBar.append({
html: "<em>Hello</em>", width: 45, });
37.
クリックしたときの 何か動くようにする
38.
jetpack.statusBar.append({ html:
"Click", width: 45, onReady: function(widget){ $(widget).click(function() { jetpack.notifications.show( "Hello Statusbar"); }); } });
39.
onReady: function(widget){
$(widget).click(function() { // 何か処理 }); } onReady : 新しいパネルが作られた 際のコールバック widget : パネル要素 $ : jQuery の $
40.
3. Disable Hatena Keyword
41.
Greasemonkey っぽく動作する例
42.
jetpack.future.import("pageMods"); function callback(doc) {
$("a.keyword", doc).each(function() { $(this).replaceWith($(this).html()); }); } var options = {}; options.matches = [ "http://d.hatena.ne.jp/*" ]; jetpack.pageMods.add(callback, options);
43.
長いので分割
44.
ポイント 1
45.
jetpack.future.import( "pageMods"); この1行を書いておくと pageMods
という機能が有 効になる
46.
ポイント 2
47.
function callback(doc) {
// doc が読み込んだページの // document オブジェクト $("a.keyword", doc).each( function() { // 何か処理 } ); }
48.
よくある書き方 function callback(doc) {
// 引数が一つだけ $("a.keyword").each( function() { // 何か処理 } ); }
49.
document でドキュメン トオブジェクトが参照で きない。 なので、$(cssセレクタ) という書き方ではどこか ら要素を探すか決まらな い。
50.
function callback(doc) {
// 第二引数で // どこから要素を探すか // 明示的に指定する $("a.keyword", doc).each( function() { // 何か処理 } ); }
51.
4. Info
52.
Ajaxの例
53.
jetpack.statusBar.append({ html:
"<button>info</button>", width: 60, onReady: function(widget) { $(widget).click(function() { var word = jetpack.tabs.focused. contentWindow.getSelection(); $.get("http://www.google.co.jp/search", {q: word}, function(data) { var info = $(data, widget). find("#resultStats").text(); jetpack.notifications.show(info); }); }); } });
54.
$.get(
"http://www.google.co.jp/search", {q: word}, function(data) { // 受信した後の処理 } ); 普通に jQuery の $.get が使える
55.
はまりやすい ポイント
56.
onReady: function(widget) {
// 略 ... $.get( "http://www.google.co.jp/search", {q: word}, function(data) { var info = $(data, widget). find("#resultStats").text(); コンテキストを指定する 必要がある。
57.
普通の jQuery コードでは var
info = $(data); これで内部的に document.createElement が呼び出される。
58.
Jetpack Feature では document
で Document オブジェクトが 参照できない
59.
onReady: function(widget) {
// 略 ... $.get( function(data) { var info = $(data, widget). find("#resultStats").text(); widget が追加したパネルの Document オブジェクトになっ ているので、うまくいく。
60.
Jetpack とは 拡張を書く:基本編 拡張を書く:応用編 参考ページ
61.
基本編の内容の 組み合わせで けっこう色々なことが できる
62.
もう一工夫するための Jetpack API の紹介
63.
1. 右クリック
メニュー
64.
まずは簡単な例
65.
選択したら コンソールログに 出力する
66.
jetpack.future.import("menu"); jetpack.menu.context.page.add({ label:
"simple menu", command: function() { console.log("simple menu"); } });
67.
メニューを使うために 必要な1行 jetpack.future.import("menu");
68.
右クリックメニューに 追加する jetpack.menu.context.page.add({
// 追加するメニューの内容 });
69.
jetpack.menu.context.page.add({ //
メニューに表示する文言 label: "simple menu", // メニューを選択したときの // コールバック関数 command: function() { console.log("simple menu"); } });
70.
これをふまえて
71.
右クリックで選ん だ要素を消す Feature を作る
72.
jetpack.future.import("menu"); jetpack.menu.context.page.add( function(c) {
return { label: "hide <" + c.node.nodeName + ">", command: function() { $(c.node).fadeOut("fast"); } }; });
73.
jetpack.menu.context.page.add(
function(c) { // この関数内で新しい // メニューの内容を作って返す。 // c が右クリックした対象。 } );
74.
function(c) {
return { // c.node で右クリックした対象の // DOM node が参照できる label: "hide <" + c.node.nodeName + ">", command: function() { $(c.node).fadeOut("fast"); } }; }
75.
ソースはここにあ る http://jetpackgallery.mozilla labs.com/jetpacks/337 リンク
76.
2. 設定画面
77.
Feature の動作を ユーザがカスタマ イズできるように したい
78.
var manifest =
{ settings: [ { name: "message", type: "text", label: "Name", default: "" } ] }; jetpack.future.import( "storage.settings");
79.
// 設定項目を定義する var manifest
= { settings: [ // ここに設定項目を書く { name: "message", type: "text", label: "Name", default: "" } ] };
80.
var manifest =
{ settings: [ // ... ] }; // manifest を定義した後に // import する jetpack.future.import( "storage.settings");
81.
// これで参照できる var name
= jetpack.storage. settings.message; // settings: [ // { name: "message", // この message に対応
82.
これをふまえて
83.
Twitter の Web 画面で
Enter を 押しただけでつぶ やく Feature を 作る
84.
jetpack.future.import("pageMods"); var manifest =
{ settings: [ { name: "needCtrlKey", type: "boolean", label: "Ctrl key", default: false }, { name: "needAltKey", type: "boolean", label: "Alt key", default: false } ] }; jetpack.future.import("storage.settings"); function isTweetKey(e) { if (jetpack.storage.settings.needCtrlKey && ! e.ctrlKey) { return false; } if (jetpack.storage.settings.needAltKey && ! e.altKey) { return false; } // 13 : Enter key code return e.keyCode === 13; } // ... 続く
85.
ソースはここにあ る http://jetpackgallery.mozilla labs.com/jetpacks/341 リンク
86.
2つ設定項目をつくる var manifest =
{ settings: [ { name: "needCtrlKey", type: "boolean", label: "Ctrl key", default: false }, { name: "needAltKey", type: "boolean", label: "Alt key", default: false } ] }; jetpack.future.import("storage.settings");
87.
Twitter ショートカット キーだったらつぶやく function callback(doc)
{ var textBox = $("#status", doc); textBox.keydown(function(e) { if (isTweetKey(e) && textBox.value !== "") { $("#update-submit", doc).click(); } }); }
88.
押したキーの種類を 判別する function isTweetKey(e) {
if (jetpack.storage.settings.needCtrlKey && ! e.ctrlKey) { return false; } if (jetpack.storage.settings.needAltKey && ! e.altKey) { return false; } // 13 : Enter key code return e.keyCode === 13; }
89.
Jetpack とは 拡張を書く:基本編 拡張を書く:応用編 参考ページ
90.
英語ページ
91.
MDC APIリファレンス かなり不十分 ... https://developer.mozilla.or g/en/Jetpack#API リンク
92.
JEPs 新しい機能についてのド キュメント https://wiki.mozilla.org/Lab s/Jetpack/JEPs リンク
93.
Jetpack Gallery Jetpack Feature
がいっ ぱいある http://jetpackgallery.mozill alabs.com/ リンク
94.
Jetpack ソースコード hg clone
http://hg.mozilla.org/labs/ jetpack/ jetpack-src でソースコードを取得 http://hg.mozilla.org/labs/j etpack/ リンク
95.
日本語ページ
96.
MDC API リファレンス 日本語版 https://developer.mozilla.or g/ja/Jetpack#API リンク
97.
modest Jetpack ページ 参考になる https://dev.mozilla.jp/jetpa ck/ リンク
98.
APIリファレンス 日本語訳 modest 版 https://dev.mozilla.jp/jetpa ck/api/ リンク
99.
参考になるブログ Jetpack カテゴリを チェック http://d.hatena.ne.jp/con_ma me/ リンク
100.
ローカルの Jetpack Feature ファイルを インストールする
Feature http://d.hatena.ne.jp/terama ko/20091201 リンク
101.
僕のブログ Jetpack カテゴリーを チェック http://d.hatena.ne.jp/mollif ier/ リンク
102.
みなさんも Jetpack に 挑戦してみて 下さい
103.
ありがとう ございました
Download