Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
解決策をひとつ増やそう!ブラウザ拡張機能作成のススメ
Search
Masayuki Maekawa
December 09, 2023
Programming
1
590
解決策をひとつ増やそう!ブラウザ拡張機能作成のススメ
2023/12/09
合同勉強会 in 大都会岡山 -2023 Winter-
https://gbdaitokai.connpass.com/event/299345/
Masayuki Maekawa
December 09, 2023
Tweet
Share
More Decks by Masayuki Maekawa
See All by Masayuki Maekawa
拡張機能でええんちゃう?
maepon
1
640
UDフォントの話
maepon
0
440
箱ひげ図
maepon
0
630
Core Web Vitals についてあれやこれや
maepon
1
450
大規模サイトにおけるSEO観点でのURL設計
maepon
4
4.3k
ミーティングの「進行役」を考える
maepon
1
620
ミーティングの「進行役」考
maepon
1
620
DB使わずWordPressのデータ取得
maepon
0
640
JavaScriptの読み込みを考える〜場所、async、defer、その仕組みと使い所〜
maepon
3
2.7k
Other Decks in Programming
See All in Programming
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
150
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
120
2年のAppleウォレットパス開発の振り返り
muno92
PRO
0
180
Python札幌 LT資料
t3tra
7
1.1k
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osc25hi-duckdb
takahashiikki
0
240
[AI Engineering Summit Tokyo 2025] LLMは計画業務のゲームチェンジャーか? 最適化業務における活⽤の可能性と限界
terryu16
2
270
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
6
2.2k
PC-6001でPSG曲を鳴らすまでを全部NetBSD上の Makefile に押し込んでみた / osc2025hiroshima
tsutsui
0
200
リリース時」テストから「デイリー実行」へ!開発マネージャが取り組んだ、レガシー自動テストのモダン化戦略
goataka
0
160
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
320
Go コードベースの構成と AI コンテキスト定義
andpad
0
160
.NET Conf 2025 の興味のあるセッ ションを復習した / dotnet conf 2025 quick recap for backend engineer
tomohisa
0
110
Featured
See All Featured
Discover your Explorer Soul
emna__ayadi
2
1k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
38
A Soul's Torment
seathinner
3
2.1k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
The SEO identity crisis: Don't let AI make you average
varn
0
47
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
77
KATA
mclloyd
PRO
33
15k
The Curious Case for Waylosing
cassininazir
0
200
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Transcript
ղܾࡦΛͻͱͭ૿ͦ͏ʂ $ISPNF֦ுػೳ࡞ͷ εεϝ ߹ಉษڧձJOେձԬࢁ8JOUFS લণɹ
͡Ίʹ
͜ͷ͓ͷత w ʮ֦ுػೳͰղܾͰ͖Δͷ͋Γͦ͏ʯ w ʮ֦ுػೳ࡞Εͦ͏ʯ w ʮ֦ுػೳ࡞ͬͯΈΔ͔ʯ w ʮ࡞֦ͬͨுػೳετΞʹެ։ͯ͠ΈΔ͔ʯʢ˞ͦ͏ͳΕ͍͍ͳʣ
͓͠ͳ͕͖ w $ISPNF֦ுػೳͱʁ w ࣮ࡍʹ࡞ͬͨͷհ w ΄΅࠷খߏͷ$ISPNF֦ுػೳ w ࡞࣌ͷ5JQTΛ͍͔ͭ͘
લণ w ΣϒΫϦΤΠλʔζχϡʔεཧਓ w IUUQTXXXGBDFCPPLDPNHSPVQT w IUUQTUXJUUFSDPNXFCDSFJOGP w ઌपܴ͑·ͨ͠ w
$MBTTJגࣜձࣾιϑτΣΞΤϯδχΞ w ։ൃάϧʔϓϦʔμʔϓϩμΫτΦʔφʔ
$ISPNF֦ுػೳͱʁ
https://www.google.com/search?q=Chrome%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD%E3%81%A8%E3%81%AF%EF%BC%9F
https://chat.openai.com/share/98eb53e3-c9c0-4f32-8152-ba1ff4342d3a
࡞Γखઢͩͱछྨ ˞େཚʹݴͬͯ·͢ Σϒϖʔδͷ)5.-ʹ TDSJQUΛՃ͢Δ $ISPNFͷ"1*Λ͏ TDSJQUΛΈࠐΉ
࡞Γखઢͩͱछྨ ˞େཚʹݴͬͯ·͢ Σϒϖʔδͷ)5.-ʹ TDSJQUΛՃ͢Δ ͪ͜ΒͷΞϓϩʔνͩͱ ඇৗʹෑډ͕͍
࣮ࡍʹ࡞ͬͨͷհ
(PPHMF.FFU$IBU$MJQCPBSE w $MBTTJࣾͰͷʮ.FFUͷνϟοτͷอଘΕͨʂʯΛड͚ͯ w ίϐʔϘλϯͷՃ w ୀग़ϘλϯԡԼ࣌ʹΫϦοϓϘʔυʹࣗಈͰอଘ w λϒΛด͡Δ࣌ʹμΠΞϩά w
ʢࣾͰʣരέ https://chromewebstore.google.com/detail/google-meet-chat-to-clipb/djoaekihkgkgcgckfjakaekoiplcpoec?hl=ja
Σϒϖʔδͷ)5.-ʹTDSJQUΛՃ͢Δ
ଞʹετΞެ։͠ͳ͍ۀิॿ֦ுػೳ w ϝʔϧ৴4BB4ͷʮબΜ͡Ό͍͚ͳ͍ϥδΦϘλϯʯແޮԽ w จॻཧ4BB4͔Β༰Λύʔεͯࣾ͠γεςϜͷϦϯΫੜ w ςεταΠτͱຊ൪αΠτΛಉҰύεͰӾཡ͢Δ
΄΅࠷খߏͷ$ISPNF֦ுػೳ w IUUQTHJUIVCDPNNBFQPONJOFYUFOTJPO w )5.-ͷ4DSJQUՃํࣜͷʢ΄΅ʣ࠷খߏ
DISPNFFYUFOTJPOT σϕϩούʔϞʔυʹνΣοΫΛೖΕΕɺ ϑΥϧμΛ֦ுػೳͱͯ͠ಡΈࠐΊ·͢ɻ
NBOJGFTUKTPO { "manifest_version": 3, "name": "࠷খݶͷChrome֦ுػೳ", "version": "1.0", “description": "ϖʔδ্ͷHTMLΛมߋ͢Δ࠷খݶͷChrome֦ுػೳ",
"content_scripts": [ { "matches": ["<all_urls>"], "js": ["content.js"] } ] } ఆٛɾઃఆϑΝΠϧ
NBOJGFTUKTPO { "manifest_version": 3, "name": "࠷খݶͷChrome֦ுػೳ", "version": "1.0", “description": "ϖʔδ্ͷHTMLΛมߋ͢Δ࠷খݶͷChrome֦ுػೳ",
"content_scripts": [ { "matches": ["<all_urls>"], "js": ["content.js"] } ] } ఆٛɾઃఆϑΝΠϧ શͯͷΣϒϖʔδͰɺ DPOUFOUKTΛద༻͢Δ
DPOUFOUKT // content.js // ϖʔδ্ͷςΩετΛมߋ document.body.innerText = "Hello, Chrome֦ுػೳ!"; //
ུ ࣮ߦϑΝΠϧ
DPOUFOUKT // content.js // ϖʔδ্ͷςΩετΛมߋ document.body.innerText = "Hello, Chrome֦ுػೳ!"; //
ུ ࣮ߦϑΝΠϧ ڟѱ͗͢Δ
DPOUFOUKT // content.js // ϖʔδ্ͷςΩετΛมߋ // document.body.innerText = "Hello, Chrome֦ுػೳ!";
// DomContentLoad࣌ʹaλάͷtargetଐੑΛআ͢Δ function removeTarget() { const links = document.querySelectorAll('a[target]'); links.forEach((link) => { link.removeAttribute('target'); }); setTimeout(removeTarget, 500) } removeTarget(); ࣮ߦϑΝΠϧ ϖʔδશͯͷUBSHFUଐੑ ΛSFNPWF͢Δ
NBOJGFTUKTPO { "manifest_version": 3, "name": "࠷খݶͷChrome֦ுػೳ", "version": "1.0", “description": "ϖʔδ্ͷHTMLΛมߋ͢Δ࠷খݶͷChrome֦ுػೳ",
"content_scripts": [ { "matches": ["https://maepon.blog*"], "js": ["content.js"] } ] } ఆٛɾઃఆϑΝΠϧ ద༻͢ΔαΠτࢦఆͨ͠ํ ͕ແͰ͢ ʢਖ਼نදݱ͑ͳ͍ͣʣ
+BWB4DSJQUॻ͚Ε ͳΜͱ͔ͳΔ ؾ͕͖ͯ͠·ͤΜʁ
࡞࣌ͷ5JQTΛ͍͔ͭ͘ w DPOUFOUKT͕ಡΈࠐ·ΕΔͷ%0.$POUFOU-PBEFEͷޙ w MPDBM4USBHFී௨ʹ͑·͢ɻͨͩ͠ϖʔδͷυϝΠϯͷΈ w υϝΠϯΛ·͍ͨ͗ͨ߹ɺ$IPSNF"1*Λར༻͢Δ w 41"తͳͷ.VUBUJPO0CTFSWFSʹͱͯੈʹͳΓ·͢ w
࣌ʹJOUFSWBMճ͢͜ͱʜ
ؾΛ͚ͭΔ͜ͱ w 6*͍͡Δܥ%0.ΛͳΜͱ͔ηϨΫλۦͯ͠ཁૉΛ௫Ή w ͭ·ΓΫϥε໊มΘͬͨΒಈ͔ͳ͘ͳͬͨΓ w ͜Ε͔ΓͲ͏͠Α͏ͳ͍ w ηϨΫλͷৄࡉΛͲΕ͚ͩখ͘͞Ͱ͖Δ͔ͷউෛ w
ͱ͍͑ؤுͬͨͱ͜ΖͰɺͷੈքͰ͋Δ
ͥͻ4UPSFެ։Λ w ͬͯ͘Βͬͯྑ͍ͳɺͱ͍͏ͷੋඇετΞެ։Λ w $ISPNFͷετΞΛճ͑σϕϩούʔʹͳΕ·͢ w ΞΠίϯΞΠΩϟονը૾͕ඞཁɻ͕ΜΕʂ w &EHFͷ֦ுػೳετΞ͋Γ·͢ w
ͪ͜ΒແྉʢͰ$ISPNFΑΓෑډߴ͍ײ͡ʣ
͋Γ͕ͱ͏͍͟͝·ͨ͠