在我的书签扩展程序中,我需要将用户的Gmail地址发送到谷歌应用引擎,以便将用户作为“所有者”写入数据库。
我的理解是我不能使用弹出窗口,因为我有一个背景页面(我记得读过这个但我再也找不到了)。我还在阅读Chrome商店中的安装过程。如果有人能指引我到文档中的正确位置,我将不胜感激。
我复制下面的background.html
,其中包含变量extension_user
。如何在用户上传扩展程序时获取此变量? This is my previous question
<html>
<script>
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.getSelected(null, function(tab) {
// Send a request to the content script.
chrome.tabs.sendRequest(tab.id, {action: "getDOM"}, function(response) {
var firstParagraph = response.dom;
var formData = new FormData();
formData.append("url", tab.url);
formData.append("title", tab.title);
formData.append("pitch", firstParagraph);
//***the variable with user email to send to backend:***//
//formData.append("extension_user", extension_user)
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://ting-1.appspot.com/submithandlertest", true);
xhr.onreadystatechange = function (aEvt) {
if (xhr.readyState == 4) {
if (xhr.status == 200){
console.log("request 200-OK");
chrome.browserAction.setBadgeText ( { text: "done" } );
setTimeout(function () {
chrome.browserAction.setBadgeText( { text: "" } );
}, 2000);
}else{
console.log("connection error");
chrome.browserAction.setBadgeText ( { text: "ERR" } );
}
}
};
xhr.send(formData);
}); //chrome.tabs.sendRequest
});
});
</script>
</html>
答案 0 :(得分:2)
您可以在单个扩展程序中同时使用popup
和background page
。我的很多扩展程序同时使用这两个扩展程序...使用background page
来传达和保存popup
页面的数据......
您可以提示您的用户在您的后台页面中保存他们的电子邮件地址,如下所示:
<script type="text/javascript">
addEventListener('load', function(){
var MAJOR_VERSION=1.0;
if(!localStorage.updateread||localStorage.updateread!=MAJOR_VERSION)
{
var email=prompt("Enter the Email Address : ")
localStorage["Email"] = Email;
localStorage.updateread=MAJOR_VERSION
}
}, 0);
</script>
此脚本仅在您首次安装扩展程序时运行。用户的电子邮件地址将保存在扩展程序LocalStorage
中,直到他们卸载为止...调用此变量现在可以在您的background page
和popup
页面中使用...