javascript - gapi 在内容脚本中未定义

标签 javascript google-chrome google-chrome-extension google-api google-api-client

我根据谷歌文档在页面加载时运行此代码:

(function() {

    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/client:plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);

})();

这是我的代码:

gapi.auth.authorize({
    'client_id': 'my_client_id', 
    'immediate': 'false', 
    'response_type':'token', 
    'scope': 'https://www.googleapis.com/auth/userinfo.email'
}, function() {
    console.log(arguments);
});

在控制台中,如果我访问 gapi,我会看到该对象。但是,如果我在该代码块处使用断点,则 gapi 是未定义的。现在,我在这里粘贴的代码是通过内容脚本加载的。如何将 gapi 库加载到内容脚本中?

最佳答案

因为 isolated context 它不起作用.内容脚本无法访问页面上下文中的代码,添加脚本标签会在页面上下文中注入(inject)代码。
当您在页面的 JavaScript 控制台中执行代码时,您是在页面的上下文中执行它。

您可能应该使用 identity API为此目的。

关于javascript - gapi 在内容脚本中未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25964940/

相关文章:

google-chrome-extension - Chrome 网上应用店流量 - 如何查看按流量来源划分的详细划分?

javascript - 如何在 Angular 中处理大数据

javascript - 带有文本的 Jquery 选择选项无法正常工作

javascript - 从 .split() 生成的 Google Chrome 困惑数组

php - 如何检测站点访问者是否通过 Citrix XenApp 浏览站点?

javascript - 从嵌套函数返回当前 URL - Chrome 扩展

javascript - chrome.tabs.update 无法始终如一地工作

javascript - 使用 npm 导入 date-fns

javascript - 在javascript中按比例增加这些数字的数学正确方法是什么?

java - AWS Lambda 的 Chrome 二进制文件