GoogleのChrome(クローム)で右クリックメニューを作るには。
右メニューを自作するとエクセルに値を貼り付け、
メールの雛形作成 等が自由にできます。
さて前置きが2つくらいありましたが、結局の所、何が言いたいかと申しますと、
この苦難の道を解説したかったわけです。
皆さんが同じ道を辿る時に、はまらなければと思うばかりです。
話の前提に以下
A:マニュフェスト manifest.json
B:バックグラウンド background.js
C:コンテンツ contents.js
問題1:担当が分かれまくり=縦割り行政(さすがマニフェスト)
作業のトリガーはBが担っているのに、画面の値はCが持っています。
何かと言うと右メニューから作業をさせるのはBですが、
Webの値を取得できるのはCですから、ここはBからCに依頼が必要。
Bからメッセージを投げて、Cが受け取ると言う仕組みが必要です。
CからBは例がありましたが、逆のBからCはなかなか例が無く、
ここの突破が肝となるでしょう。
問題2:ジャバスクリプト(JavaScript)でファイルを操作できない
クロームに仕込むアプリですから、悪意のあるプログラムが作れないように、
基本JavaScriptでローカルファイルの操作はできません。
アプリの起動も無理。
これは Googleクロームの拡張機能の仕様のようです。
ファイルのコピー、書き込みと言った当たり前のことができません。
(単純なJavaScriptならなんぼでも出来ますが)
無理にやる方法はあるので、がんばれる方はがんばってみてください
問題3:JavaScriptからエクセルを起動すると妙な妨害がある
結局の所 JavaScriptからエクセルを起動してWebの値を貼り付けたいのですが、
色々な壁でうまくいかず。ここの対策はスクリプトからメールを作成。
後はOutlookマクロに処理を担当させることにしました。
JavaScriptで新規メールを開くことができるので、
メールを開いたと言うイベントをOutlookに検知させ、
そこからエクセルを起動。
ファイルに落としたWebの内容(html全文)をエクセルマクロで解析して、
セルに書き込み処理。
開いたメールは Outlookマクロ内で閉じてしまえば、ユーザ(自分)には
裏でスクリプトが四の五の動いている図式は分からない。
ローラー作戦ならず、たらい回し作戦です。
もはやあの手この手。それでも実現可能です。(って言うか作ったし)
問題4:色々と壁がある
メールを起動したところで、
本来のWeb画面がエラーを起こし始めました。やくざな妨害工作です。
どうやら <a>タグを増やして、downloadをクリックしている所に、
Web画面が変更されたと認識してhtmlの初期化ができてないと言う、
作り込みの甘さゆえのエラーを露呈。おいおいWeb画面くらいちゃんと作れよ。
NullPointerException に悩まされる事に・・・
これでは使い物になりません。さすが大御所 Googlo chrome。抜け目ないねー。
ならば一連の処理に流れが起きないように、行きっぱなし実行を考える。
ミサイルの直進君か誘導君の相違。(出典:電脳コイル)色々手はあります。
target="_blank" をやめて、新たに白い画面を作る方策に変更しました。
とまあ壁は色々あるのですが、出来ないことはないのでがんばってみてください。
(おい、そんな中途半端で終わりかよ)
結局の所、Webの値、チェックボックスのチェックも含めてエクセルに取得。
画面の氏名を拾ってその人なりのメールを作成する。
なーんて事は、右クリックメニューを作成することで可能です。
以上、よろぴくお願いします。
ログインしてコメントを確認・投稿する