Как передать сохраненную переменную Javascript в расширении Chrome в приложение Google App Engine? - PullRequest
2 голосов
/ 09 октября 2011

У меня есть простое приложение для закладок, которое я разрабатываю для изучения Google App Engine.На этом этапе я копирую и вставляю URL в http://ting -1.appspot.com / submit , который имеет форму с полем URL.Поскольку это громоздко, я подумал о добавлении расширения Chrome.Я только что изменил пример hello world , так что теперь я получаю URL вкладки с этим кодом (как описано здесь) :

  <script>
    window.addEventListener("load", windowLoaded, false);
    function windowLoaded() {
      chrome.tabs.getSelected(null, function(tab) {
        document.getElementById('currentLink').innerHTML = tab.url;
        tabUrl = tab.url;
      });
    }
document.write(tabUrl)
  </script>

Как мнепередать tabUrl на http://ting -1.appspot.com / отправить ?

Спасибо!

Обновление

background.html, который я использовал в соответствии с ответом Мухаммеда Мансура :

<script>
    //React when a browser action's icon is clicked.
    chrome.browserAction.onClicked.addListener(function(tab) {
        //this gets the url and the title
        chrome.tabs.getSelected(null, function(tab) {
            tabUrl = tab.url
            tabTitle = tab.title

        //this posts the data to the bookmarking app 
        var formData = new FormData();
        formData.append("url", tabUrl);
        formData.append("title", tabTitle);
        formData.append("pitch", "this is a note");
        formData.append("user_tag_list", "tag1, tag2");
        var xhr = new XMLHttpRequest();
        xhr.open("POST", "http://ting-1.appspot.com/submithandlertest");
        xhr.send(formData);
        });
    });
</script>

1 Ответ

4 голосов
/ 09 октября 2011

Вы используете обычный запрос XHR (XMLHttpRequest).Я бы разместил это на вашей фоновой странице .Следуйте приведенному здесь примеру, https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest. Я полагаю, что вы также хотите отправить данные, так что не забывайте об этом.Я думаю, что вы хотели запрос POST тоже.Из примера на MDC вы можете связать его следующим образом:

var formData = new FormData();
formData.append("username", "Groucho");
formData.append("accountnum", 123456);
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://ting-1.appspot.com/submit");
xhr.send(formData);

Убедитесь, что в вашем манифесте есть URL-адрес для получения разрешений на выполнение этого запроса.

"permissions": [
  "tabs",
  " http://ting-1.appspot.com/submit"
],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...