これは、イベントスクリプトとコンテンツスクリプトの組み合わせを使用して実行できます。
コンテンツスクリプトをマニフェストに登録します。JSON
"content_scripts": [ {
"js": [ "/util/jquery.js", "main.js"],
"matches": [ "http://*/*", "https://*/*"],
"run_at": "document_start",
}],
コンテンツスクリプトは、(バックグラウンドスクリプト「イベント」スクリプトを作成する場合はfalse =永続を使用)マニフェストでバックグラウンドスクリプトを登録作成
$("form").submit(function(e) {
var $this = $(this);
console.log('submit');
var formData = findFormData($this); //function searches form for username/password
//Send message to background page with user/pass data
chrome.runtime.sendMessage({greeting:'form_submit', data:formData}, function(){ /*if needed */ });
});
を提出するフォームを待ち受けます。我々はまた、次の権限が必要です
"background": {
"scripts": ["/background/background.js"],
"persistent" : false
},
"permissions": [
"activeTab",
"storage",
"webNavigation"
]
最後に、我々は背景ページにメッセージリスナを追加
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
switch (request.greeting) {
case 'form_submit':
var data = request.data;
console.log('We Have Data!', request.data);
//We want to display the prompt when this page loads, so add listener
chrome.webNavigation.onCompleted.addListener(function askUser(details) {
//Create prompt here!
//remove the onCompleted listener so it doesn't appear when navigating again
chrome.webNavigation.onCompleted.removeListener(askUser);
});
sendResponse({farewell: "success"});
break;
}
});
は、ご返信いただきありがとうございます。あなたの答えが私の最善の選択肢かどうかは分かりませんが、私は間違いなくそれを考慮します。私はまた、あなたが持っているセキュリティ上の懸念を知りたいと思います。また、拡張機能はパスワードをデータベースに格納します。 –
それは違いを生み、さらにひどいものです。平文のパスワードを危険にさらされている場所に保管しています。私は.. * realllyly *このルートを下ることに対してお勧めします。 –
他のパスワードマネージャはどのようにそれをしますか?私はまだこの部分を実装していませんが、何らかの暗号化が必要です。パスワードを保存する安全な方法がない場合、このプロジェクトは単なる学習体験のままで、生きていくことはありません。だから心配しないでください。 –