在同一页面上使用Disqus和reCaptcha键入TypeError

时间:2018-10-02 11:53:46

标签: javascript null typeerror disqus postmessage

我正在为博客网站开发项目。我现在要处理的是TypeError,这是Disqus的Disqus在控制台中生成的embed.js文件。我正在从开发人员工具调试代码,这就是我的发现。

在嵌入时,Disqus添加一个匿名函数作为窗口对象的消息事件的处理程序。函数将MessageEvent作为第一个名为msg_event的参数,接下来是这些行中的内容(示例代码):

var variable
try {
  variable = JSON.parse(msg_event.data)
} catch(error) {
  return
}

现在,处理程序将尝试访问variable的某些属性,但是,当然,如果MessageEvent的'data'属性为null,try语句根本不会保存我们。如果您转到包含Disqus评论的任何页面(请使用此demo)并在控制台中执行下一行代码,您将看到我所看到的TypeError在我的网站上:window.postMessage(null, '*')

我继续调试页面,发现发布null消息的javascript不属于Disqus,它属于reCaptcha,它插入了同一页面(文章页面)。显而易见的解决方案(也是我唯一想到的解决方案)是重新设计站点,以使同一页面上没有冲突的供应商脚本。另一个解决方案是将网站发布时出现轻微控制台错误。但这是一项管理决定。也许有一个JavaScript解决方案可以解决此错误?

0 个答案:

没有答案
相关问题