Включая gmail.js

Я пытаюсь включить gmail.js из здесь. Но объект gmsrc недействителен, функция get.user_email() не работает. Я пытаюсь разработать расширение Chrome, инструменты разработчика Chrome (F12) говорят мне

Uncaught TypeError: невозможно прочитать свойство user_email неопределенного

Вот мой код:

var jq = document.createElement('script');
jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js";
document.getElementsByTagName('body')[0].appendChild(jq);
var gmsrc = document.createElement('script');
gmsrc.src = "https://rawgit.com/KartikTalwar/gmail.js/master/src/gmail.js";
document.getElementsByTagName('body')[0].appendChild(gmsrc);
console.log("Scripts loaded, Start playing ...");
var name = gmsrc.get.user_email();
alert(name);

Где моя ошибка?

Обновление (по-прежнему не работает):

Я пробовал это, но это тоже не работает:

    var jq = document.createElement('script');
    jq.src = chrome.extension.getURL("lib/jquery-2.1.1.min.js");
    document.body.appendChild(jq)

    //inject gmail.js
    var gmsrc= document.createElement('script');
    gmsrc.src = chrome.extension.getURL("lib/gmail.js");
    document.body.appendChild(gmsrc);

    var name = gmsrc.get.user_email();
    alert(name);

person superstar    schedule 02.01.2015    source источник
comment
Итак, это код скрипта контента, верно?   -  person Xan    schedule 02.01.2015
comment
да, я ссылаюсь на этот файл в своем манифесте в разделе content_scripts   -  person superstar    schedule 02.01.2015
comment
Привет. Я столкнулся с той же проблемой. Я хочу Gmail() в content.js. Вы нашли какое-нибудь решение?   -  person Suyash Dixit    schedule 04.12.2016


Ответы (2)


Gmail.js — это фреймворк, очень полезный для работы с сайтом mail.google.com в качестве плагина. Сначала вам нужно собрать проект из https://github.com/josteink/gmailjs-node-boilerplate следуйте ридми и, используя node.js, создайте расширение Chrome и поэкспериментируйте с ним.

person Julio Martinez Carrasco    schedule 20.08.2019

Глядя на ваш код, переменная gmsrc является ссылкой на элемент сценария, созданный с использованием источника из gmail.js, а не логики сценария Gmail, поэтому вы получаете эту ошибку.

Правильный способ использования API - включить включение (как вы это сделали) и после этого сделать что-то вроде:

var gmail = Gmail();
var name = gmail.get.user_email();
// Returns the user e-mail here;
person Júlio Gori Corradi    schedule 02.01.2015
comment
спасибо, но тогда ошибка Uncaught ReferenceError: Gmail не определен - person superstar; 02.01.2015
comment
Gmail будет доступен только в глобальном масштабе после того, как gmsrc завершит процесс загрузки. Чтобы избежать подобных ошибок, используйте прослушиватель load. onload — это событие, которое запускается javascript, когда объект, который вы включаете, завершает процесс загрузки. Используйте так: gmsrc.onload = function () { // logic here }. - person Júlio Gori Corradi; 02.01.2015
comment
Вот пример с вашим кодом и слушателем: codepen.io/anon/pen/NPbdNm - person Júlio Gori Corradi; 02.01.2015
comment
Я пробовал это, но все та же ошибка: Uncaught ReferenceError: Gmail не определен - person superstar; 02.01.2015