Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Chrome拡張を使ったDOM構造の取得
Search
mr.terada
May 26, 2022
Programming
840
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Chrome拡張を使ったDOM構造の取得
mr.terada
May 26, 2022
Other Decks in Programming
See All in Programming
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
790
Railsバージョンを4倍にした話
optim
0
440
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
430
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.7k
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
700
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
気持ちぃ〜角丸 Squircle
ryu1013
0
310
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
500
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
270
ジョジョの世界をXRで再現する
mofurune
0
170
カツオ、ご期待ください
suneo3476
0
190
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
Making the Leap to Tech Lead
cromwellryan
135
10k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
410
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Building an army of robots
kneath
307
47k
The browser strikes back
jonoalderson
0
1.8k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
380
The SEO Collaboration Effect
kristinabergwall1
1
590
Scaling GitHub
holman
464
140k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
Transcript
Chrome拡張を使った DOM構造の取得
自己紹介 • 受託系の企業→SESで金融系システムの開発したりアプリ開 発したり→いまここ • ほぼほぼPHP、Javascriptは入社前はjQueryメイン • 入社後CloudCircus社「Fullstar」のSM、リードエンジニア 寺田 真理
お話しする概要 • Fullstarの概要・同時に開発したChrome拡張[Fullstar guide editor] のご紹介 • Chrome拡張の「よく見るサンプル以上」に挑戦したい方へ Chrome拡張のざっくり入門編 •
初めて拡張機能開発+プロダクトとして活用して
Fullstarとは?
Saasをターゲットとした カスタマーサポート支援システム 例えば 契約直後のある程度固定した問い合わせ対応に人手が取られ る 例えば 登録までは終わってるけどログイン後ちゃんと使ってくれて ない
チュートリアル機能(プロダクトツアー)で解消
お客様のサイト <div>動画</div> <div>画像</div> <div>吹き出し</div> <iframe></iframe>
new Promise(...) DBからCSSセレクターの取得 CSSセレクターからの相対位置でガイド要素を表示 設定されているURLか? ⇨ NO ⇨中断 「次」のガイドへ進む Iframe
どこでChrome拡張を使うの?
• チュートリアルを表示したい要素をお客様のサイトから取得す る必要がある • エンジニア不要で作成できるサービスであるため、 HTMLやJavascriptの知識がなくても設定が簡単に可能にした い!
Chrome拡張によってお客様サイト上のコードを取得
Chrome拡張によってお客様サイト上のコードを取得 お客様のサイト スクリプト(content_scriptなど) Chrome拡張 [ Fullstar guide editor ] 拡張機能側の画面⇨スクリプト⇨お客様のサイト(アクティブタブ)へのアク
セスは下記に上げるようなインターフェースを利用します。 • MessageChannel • chrome.tab.sendMessage • chrome.scripting.executeScript
Chrome拡張によってお客様サイト上のコードを取得 お客様のサイト スクリプト(content_scriptなど) Chrome拡張 [ Fullstar guide editor ] ①マウスポインタの
X軸・Y軸を取得 ②取得した座標から一致する 要素の取得 ※document.elementFromPoint(X, Y) ③一致した要素から セレクターの文字を 生成
Fullstarの拡張機能の構成(一部抜粋) { "manifest_version": 3, "permissions": ["activeTab", "cookies", "tabs","scripting"], "background": {“service_worker”:
“xxxxxxxx”}, "web_accessible_resources": [{ "resources": ["拡張機能のIframe", "拡張機能内の操作.js",...] }], "action": { "default_popup": "popup.html", }, "author": "Cloud CIRCUS inc.", }
Fullstarの拡張機能の構成(一部抜粋) { "manifest_version": 3, "permissions": ["activeTab", "cookies", "tabs","scripting"], "background": {“service_worker”:
“xxxxxxxx”}, "web_accessible_resources": [{ "resources": ["拡張機能のIframe", "拡張機能内の操作.js",...] }], "action": { "default_popup": "popup.html", }, "author": "Cloud CIRCUS inc.", } バックグラウンドで動く スクリプト Chrome拡張機能で 利用する権限をリストアップ 拡張機能内で利用する ライブラリやJS、Iframeなどを列挙する ※ ここではワイルドカード指定もOK いまから作る拡張機能はmanifest_versionは3 じゃないと審査は通りません
• activeTab/tabs アクティブタブの情報や、タブに対してスクリプトを実行するた めに必要な権限 • cookies cookieを利用する場合に必要 例:chrome.cookies.getAll… • scripting
v3以降のみ利用可能。Webページに対してスクリプトを送信でき る。例:chrome.scripting.executeScript … Fullstarの拡張機能の構成(一部抜粋)
Popup.html contents_script ブラウザ Cookie tab Storage Alerms 適切な権限を設定した上で、 スクリプトを実行したい時は chrome.scripting.executeScript また、 ブラウザに対してデータを送信したい時などは chrome.tabs.sendMessageを利用します。
良い点 • 開発の導入まで早い!公開も安い! Chromeさえあればよい • 日々の業務効率化など「自分だけの ツール」が簡単につくれる • JSなので勉強しやすい •
iOSのアプリ審査と比べると審査は早 め。V3だと即審査OKでした 初めて拡張機能開発+プロダクトとして活用して 引っかかりやすい部分 • 書籍が少なすぎる • ちょっと踏み込もうと思うと情報が 少ない分止まりがち • 前回まで何の問題もなかったところ で審査が落ちたりすることが極稀に ある • Chrome拡張の管理画面だけではDL 数などの評価が足りないかも?
まとめ
DOM操作ができることでWebプログラマの ちょっとした効率化にも! 拡張機能のDL制限やセキュリティ上の不安など ある方にはローカル開発さらにおすすめです 「空き時間で」開発できるChrome拡張 「思ったよりいいのできたな」って時はぜひ Chromeウェブストアへ🎈
ありがとうございました