リモート Web サイトにログイン フォームを実装する Firefox 拡張機能を構築しようとしています。基本的に、アドレスバーの近くにある拡張機能のアイコンをクリックすると、拡張機能がポップアップを開きます。このモジュールを使用して実現したポップアップ動作
https://github.com/Rob--W/browser-action-jplib
初めてjavascriptログインスクリプトを作成しようとしたとき、main.jsではなくデータスクリプトでリモートWebサイトへのajax呼び出しを実装しました。私が読んだことから、ajax呼び出しはデータスクリプトでサポートされておらず、main.jsのリクエストモジュールを使用して作成する必要があるため、このソリューションは間違っていました。これを受けて、main.js で request モジュールを使用し、次のコードを作成しました。
data.js(ポップアップで使用される data フォルダ内のスクリプト)
extension.sendMessage(
{
action:"login",
data:{user:user,password:password}
},function(r){
//Handle server response. If ok show post login screen if not show invalid credentials.
});
主要。js
var popup = badge.BrowserAction({
default_icon: data.url("icon.png"),
default_popup: data.url("popup.html")
})
popup.onMessage.addListener(function(message, sender, sendResponse) {
if(message.action == 'login'){
sendResponse(login(message.data));
}
});
function login(data ){
var ret;
login = Request({
url: url,
content:data,
onComplete: function (response) {
ret = response.json;
}
});
login.get();
return ret;
}
リクエストは非同期であるため、null レスポンスが data.js に返されます。リクエストモジュールのドキュメントを調べましたが、これに対する解決策が見つかりませんでした。
誰かがこの問題を解決するための解決策を持っているか知っていますか?
ありがとうございました !