【发布时间】:2013-10-25 21:22:26
【问题描述】:
我正在尝试构建一个将在远程网站上实现登录表单的 Firefox 扩展。基本上,扩展程序将通过单击地址栏附近的扩展程序图标打开一个弹出窗口。我使用这个模块实现的弹出行为
https://github.com/Rob--W/browser-action-jplib
当我第一次尝试构建 javascript 登录脚本时,我在一个不在 main.js 中的数据脚本中实现了对远程网站的 ajax 调用。这个解决方案是错误的,因为从我读到的数据脚本中不支持 ajax 调用,我需要使用 main.js 中的请求模块来实现它。考虑到这一点,我在 main.js 中使用了 request 模块并提出了下一个代码:
data.js(弹出窗口中使用的数据文件夹内的脚本)
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;
}
因为请求是异步的,所以我将空响应发送回 data.js。我查看了请求模块文档并没有找到解决方案。
是否有人有或知道解决此问题的解决方案?
谢谢!
【问题讨论】:
标签: javascript ajax firefox firefox-addon-sdk