无法读取 null 属性“样式” - Google 登录按钮

2024-04-04

我正在尝试为我的网站实施 Google 登录。登录按钮正确显示,并且最初可以很好地进行登录。当我在使用网站后注销并尝试移至登录页面(我使用的是 React,所以都是一页)时,就会出现问题。我使用完全相同的函数来呈现登录页面,但它给了我一个“cb=gapi.loaded_0:249 Uncaught TypeError: Cannot read property 'style' of null”。 gigi 中的错误发生在这里(至少我认为):

 a.El;window.document.getElementById((c?"not_signed_in":"connected"

这就是我最初添加要呈现的登录按钮的方式:

elements.push(h('div.g-signin2',{'data-onsuccess': 'onSignIn'}))
        return h('div.page_content',elements)

我稍后使用 ReactDOM.render 调用进行渲染。

以下是我处理 SignOut 和 SignIn 的方法:

function signOut() {
    var auth2 = gapi.auth2.getAuthInstance();
    auth2.signOut().then(function () {
      // console.log('User signed out.');
      signedin = false;
      auth2 = null;
      renderPage()
    });
  }

var google_idtoken;
var signedin = false;

// set auth2 to null to indicate that google api hasn't been loaded yet
var auth2 = null;

function onSignIn(googleUser) {
    auth2 = gapi.auth2.getAuthInstance({
        client_id: 'ClientID.apps.googleusercontent.com'
    });
    google_idtoken = googleUser.getAuthResponse().id_token;
    wrongemail = true;
  // if(auth2 != null && auth2.isSignedIn.get() == true){

    if ((((auth2.currentUser.get()).getBasicProfile()).getEmail()).split("@").pop() == 'domain.com'){
        signedin = true
        wrongemail = false
    }
    updateSources()
    // renderPage()
}

我遇到了类似的问题,但我不确定它是否与您的问题完全相关。我在 html 中添加了按钮:

<div id="gdbtn" class="g-signin2" data-onsuccess="onSignIn"></div>

但我想根据 Google 的说明自定义按钮的渲染,因此我将平台脚本添加为:

<script src="https://apis.google.com/js/platform.js?onload=renderGDriveButton"></script>

使用以下 onload 函数:

function renderGDriveButton() {
  gapi.signin2.render('gdbtn', { 
    'height': 50
  });
}

我得到了与您相同的错误:“未捕获类型错误:无法读取 null 的属性‘样式’”。我的问题是我包含了以下属性: class="g-signin2" data-onsuccess="onSignIn" 一旦我取出这些属性并将按钮添加为:

<div id="gdbtn"></div>

然后错误就消失了。看起来和你的问题非常相似。您可以尝试通过 onload 函数添加按钮。只是一个想法。您可以在以下位置查看文档:https://developers.google.com/identity/sign-in/web/build-button https://developers.google.com/identity/sign-in/web/build-button

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法读取 null 属性“样式” - Google 登录按钮 的相关文章

随机推荐

  • Python 3 CSV 文件在打印时出现 UnicodeDecodeError: 'utf-8' 编解码器无法解码字节错误

    我在 Python 3 中有以下代码 用于打印 csv 文件中的每一行 import csv with open my file csv r newline as csvfile lines csv reader csvfile delim
  • 更改文件长度时,是否需要重新映射所有关联的 MappedByteBuffer?

    我有一个小而简单的存储系统 可以通过内存映射文件进行访问 由于我需要处理超过 2GB 的空间 因此我需要一个具有固定大小 如 2GB 的 MappedByteBuffer 列表 由于不同原因 我使用的空间较少 那么一切都相对简单 一个缓冲区
  • Nuxt 3 中的深色模式切换器无法与官方 @nuxtjs/color-mode 配合使用

    我想使用 tailwind 和推荐的 nuxtjs color mdoe 模块在我的 Nuxt 应用程序上实现深色模式 测试顺风的黑暗 类运行良好并且按预期工作 但是我无法使按钮切换器以编程方式设置颜色模式 我在 devDeps 中安装了
  • 将 props 传递给包装在 withRouter() 函数中的 React 组件

    我正在使用 React Router v4 在我的 React 应用程序中导航 下面是包裹在withRouter 函数使其能够在单击时更改路线 const LogoName withRouter history props gt h1 gt
  • 如何使用perl脚本删除重复行

    如何删除重复行 我当前的代码 use strict use warnings my input input txt my output output txt my seen open OP gt output or die open IP
  • SSRS - 条件文本格式(使用 Switch 的表达式)

    我将首先说明这些表达式在报告中确实有效 问题是他们没有一起工作 我目前有一个基于两列值格式化的列标题 根据 Column1 的值使用斜体和下划线 基于 Column2 值的粗体和特定颜色 我通过在文本属性中使用 Switch 表达式来完成此
  • 在 Swift 中实例化并呈现 viewController

    Issue 我开始看Swift Programming Language 不知怎的 我无法正确输入 a 的初始化UIViewController从具体的UIStoryboard In Objective C我简单地写 UIStoryboar
  • 如何使用 FFmpeg 从图像创建视频? [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的
  • Rails 应用程序在服务器上速度很快,但从另一台机器访问时速度很慢

    我有一个 Rails 应用程序托管在服务器计算机上 运行 Webrick 当我登录到这台计算机并访问该应用程序 通过 localhost 3000 时 该应用程序运行顺利 但是 当我尝试从另一台计算机 通过主机名 3000 访问该应用程序时
  • 删除一行中重复的相同字符

    我正在尝试创建一种方法 该方法可以从字符串中删除所有重复项 或者根据参数仅在一行中保留相同的 2 个字符 例如 helllllllo gt helo or helllllllo gt hello 这保留了双字母 目前我通过执行以下操作删除重
  • Django 使用 sqlite3 设置?

    我正在尝试按照 django 网站上的演练进行操作 我下载了 sqlite 并将其保存在C Windows System32文件夹 当我编辑settings py文件我该放什么Name场地 我必须建立数据库吗 django 文献说 API
  • 使用 postgres 窗口函数重复行

    postgres 文档 http www postgresql org docs 9 1 static tutorial window html http www postgresql org docs 9 1 static tutoria
  • Argparse:来自文件的默认值

    我有一个 Python 脚本 它需要很多参数 我目前使用的是configuration ini文件 使用读取configparser 但希望允许用户使用命令行覆盖特定参数 如果我只有两个参数 我会使用类似的东西 if not arg1 ar
  • Java 8中basic和url base64编码的区别

    Java 8Base64 http docs oracle com javase 8 docs api java util Base64 html库有两种可用于 URI 构建的变体 基本 变体和 URL 和文件名安全 变体 该文档指出RFC
  • 外部调用的 Lambda 函数超时

    我有一个 Lambda 函数 需要从中进行外部 API 调用 我已将 Lambda 函数添 加到一个安全组 一个 VPC 和 2 个子网 它为我提供了以下文本 当您启用 VPC 时 您的 Lambda 函数将失去默认互联网 使用权 如果您需
  • 如何将字符串转换为 android.net.Uri

    问题 我发现java net URI有一个 create String uri 选项 但是android net uri才不是 进一步来说 我正在尝试获取 RingtoneManager 的输出RingtonePicker并将其设置为默认铃
  • 导入数据和事件溯源

    我目前正在开发一个整体系统 我希望将其引入现代并结合 DDD 和 CQRS 我收到了重新编写解决方案的导入机制的请求 并认为这可能是开始此重新架构过程的好机会 目前流程是 用户上传 CSV 系统解析 CSV 并在屏幕上显示每一行 对每一行以
  • AsyncSupportListenerAdapter primefaces 异常

    我是 jsf 的新人 我正在尝试使用 inf primefaces 做一些示例 当我尝试运行这个示例时 http www primefaces org showcase labs push chat jsf http www primefa
  • Angular 4 HttpClient 查询参数

    我一直在寻找一种将查询参数传递到 API 调用中的方法HttpClientModule s HttpClient并尚未找到解决方案 与旧的Http模块你会写这样的东西 getNamespaceLogs logNamespace Setup
  • 无法读取 null 属性“样式” - Google 登录按钮

    我正在尝试为我的网站实施 Google 登录 登录按钮正确显示 并且最初可以很好地进行登录 当我在使用网站后注销并尝试移至登录页面 我使用的是 React 所以都是一页 时 就会出现问题 我使用完全相同的函数来呈现登录页面 但它给了我一个