はじめに
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 のコールバック関数に引数を渡したかったので調べてまとめた。