はじめに
Chrome 拡張機能で CSV ファイルを生成してダウンロードする方法について整理した。
TL;DR
ほぼ JavaScriptでファイルダウンロード処理を実現する - Qiita の通り
new Blob
でオブジェクトを生成createObjectURL
で URL に変換<a href="..." download="hoge.csv">
でダウンロード
Chrome 拡張機能で CSV ファイルを生成してダウンロードする方法について整理した。
ほぼ JavaScriptでファイルダウンロード処理を実現する - Qiita の通り
new Blob
でオブジェクトを生成createObjectURL
で URL に変換<a href="..." download="hoge.csv">
でダウンロードVue.js を使って Chrome 拡張機能を開発する方法について簡単に整理した。
前回の記事 では、Kocal/vue-web-extension
を使った Chrome 拡張機能の開発方法について調べた。が、「Kocal/vue-web-extension
では Popup Page や Options Page で Vue.js を使うもの」、つまり「メインページ(メインコンテンツ?)側では使えないもの」という結論に至った。(※自分の中では、の話)
冷静に考えて「メインページ側に使えないわけがない」と思って、どのようにすれば実現できるかについて調査した。
実際に拡張機能を作ってリリースした話 : Vue.js を使ってChrome 拡張機能を作った話(はてなブックマークのコメントを Qiita 記事内に表示) - Qiita
vue.config.js
を用意して vue-cli-service
でビルドすれば動作することを確認manifest.json
では chunk-vendors.js
を先に読み込むJavaScript のソースコードの圧縮・難読化ツールについて調べたり試したりしたので記事にまとめた。
Google chrome の拡張機能の開発で javascript-obfuscator/javascript-obfuscator を使って minify をしていたが、Google さんから「Policy 違反」と言われてしまったため、何がまずかったのかと代替できそうなツールを探した。
※2019/09/28 現在では、新しいツール(terser/terser を選択)を使って minify したソースをまだ提出していないので、もし Chrome 拡張機能の JS 圧縮について調べていてこのページにたどり着いた場合は鵜呑みにしないように注意。
Vue.js を使って Chrome 拡張機能を開発できるテンプレートを探して、Kocal/vue-web-extension
を見つけたので、簡単な使い方のメモ。
追記: 続編として Vue.js を使ってメインページ側で動作する Chrome 拡張機能を開発する方法 という記事も書いた。
vue init kocal/vue-web-extension my-extension
で初期化npm run build
で dist
配下にリリースファイル作成npm run watch
でファイル変更を検知してビルドsrc
配下を編集して拡張機能を開発jQuery Select2 で、初期値を設定する方法と、クリアをする方法を調べた。
$('#mySelect2').val("val").trigger('change');
で初期化multiple
なら $('#mySelect2').val(["val1", "val2", ...]).trigger('change');
$('#mySelect2').val(null).trigger('change');
でクリアCordova でネイテイブのダイアログを表示できる cordova-plugin-dialogs
について調べた。
cordova-plugin-dialogs
はネイティブのダイアログを呼び出すwindow.alert
などとの違い、iOS, Android での違い)をまとめたwindow.alert
なども考慮した Wrapper を作ったCordova で Splash Screen を設定できる cordova-plugin-splashscreen
についてまとめた。
cordova plugin add cordova-plugin-splashscreen
でインストールres/screen/ios
などに画像ファイルを配置config.xml
に <splash src="res/screen/ios/xxxx.png" />
を追加JavaScript で URL のクエリパラメータ部分を操作する方法を調べた。
const url = new URL(location)
で初期化url.searchParams.set("hoge", "fuga")
などで設定url.href
や url.toString()
で設定後の URL を出力JavaScript で setTimeout
, setInterval
, addEventListener
のコールバック関数に引数を渡す方法をまとめた。
setTimeout
, setInterval
には bind(<this>, <args>)
addEventListener
には第二引数を Object 型で渡すthis.args
で引数にアクセスsetTimeout
, setInterval
, addEventListener
のコールバック関数に引数を渡したかったので調べてまとめた。