mixiユーザー(id:3393265)

2019年02月19日06:06

125 view

マニュフェスト苦難の道

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の値、チェックボックスのチェックも含めてエクセルに取得。
画面の氏名を拾ってその人なりのメールを作成する。
なーんて事は、右クリックメニューを作成することで可能です。
以上、よろぴくお願いします。
0 0

コメント

mixiユーザー

ログインしてコメントを確認・投稿する