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
370
解決策をひとつ増やそう!ブラウザ拡張機能作成のススメ
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
500
UDフォントの話
maepon
0
310
箱ひげ図
maepon
0
480
Core Web Vitals についてあれやこれや
maepon
1
380
大規模サイトにおけるSEO観点でのURL設計
maepon
4
3.5k
ミーティングの「進行役」を考える
maepon
1
510
ミーティングの「進行役」考
maepon
1
550
DB使わずWordPressのデータ取得
maepon
0
530
JavaScriptの読み込みを考える〜場所、async、defer、その仕組みと使い所〜
maepon
3
2.4k
Other Decks in Programming
See All in Programming
最近追加した型の紹介とその振り返り
aki19035vc
0
180
feature環境をGitHub ActionsとCloudFormationでいい感じに管理する
nealle
2
310
ドメイン駆動設計の実践
masuda220
PRO
19
5.2k
AWSでゲームサーバーを運用! Amazon GameLiftのお話
iriikeita
0
200
企業向け生成AIアプリの 開発から得られた知見
takaakikakei
0
310
社内 LT 会を発足し、アウトプット文化を醸成させるために考えたこと・やったこと / Starting internal LT meetings and fostering an output culture
mackey0225
3
120
SRE チーム立ち上げ前に考えたこと・取り組んだこと / Considerations and Preparations Before Establishing an SRE Team
mackey0225
3
320
CSC307 Lecture 07
javiergs
PRO
0
220
Introduction of Happy Eyeballs Version 2 (RFC8305) to the Socket library
coe401_
1
220
From Spring Boot 2 to Spring Boot 3 with Java 22 and Jakarta EE
ivargrimstad
0
1.9k
【Go言語】ジェネリクス
tomo1227
0
170
CSC307 Lecture 11
javiergs
PRO
0
240
Featured
See All Featured
A better future with KSS
kneath
231
17k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
23
1.9k
Scaling GitHub
holman
458
140k
Designing Experiences People Love
moore
136
23k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
52k
Design by the Numbers
sachag
277
18k
The Power of CSS Pseudo Elements
geoffreycrofte
64
5.2k
Designing for Performance
lara
604
67k
Optimising Largest Contentful Paint
csswizardry
18
2.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
39
47k
Gamification - CAS2011
davidbonilla
78
4.9k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
17
8.7k
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ΑΓෑډߴ͍ײ͡ʣ
͋Γ͕ͱ͏͍͟͝·ͨ͠