Как сохранить электронную почту пользователя в качестве переменной, когда кто-то устанавливает расширение? - PullRequest
0 голосов
/ 22 октября 2011

В моем расширении для закладок мне нужно отправить gmail-адрес пользователя в движок приложения google, чтобы записать закладку в базу данных как пользователь как «владелец».

Насколько я понимаю, я не могу использовать всплывающее окно, потому что у меня есть фоновая страница (я помню, что читал об этом, но я не смог найти ее снова). Я также читаю процесс установки в магазине Chrome. Буду признателен, если кто-нибудь сможет направить меня в нужное место в документации.

Я копирую свой background.html ниже с включенной переменной extension_user. Как я могу получить эту переменную от пользователя, когда они загружают расширение? Это мой предыдущий вопрос .

<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>

1 Ответ

2 голосов
/ 04 ноября 2011

Вы можете использовать как 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 странице ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...