无法执行' postMessage'关于DOMWindow'使用Google代码

时间:2016-04-26 16:52:39

标签: javascript html google-plus badge

我想在我的网站上添加Google+徽章。当我从Google配置工具复制/粘贴代码时,徽章无效。我认为问题可能出在JavaScript中,所以我创建了一个空的index.html并复制/粘贴了Google Code ...但它仍然不起作用:

Google代码:

<!-- Place this tag in your head or just before your close body tag. -->
<script src="https://apis.google.com/js/platform.js" async defer></script>

<!-- Place this tag where you want the widget to render. -->
<div class="g-page" data-width="250" data-href="https://plus.google.com/110789175777197362579" data-theme="dark" data-rel="publisher"></div>

index.html中的完整HTML

<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>

<!-- Place this tag where you want the widget to render. -->
<div class="g-page" data-width="250" data-href="https://plus.google.com/110789175777197362579" data-theme="dark" data-rel="publisher"></div>

<!-- Place this tag in your head or just before your close body tag. -->
<script src="https://apis.google.com/js/platform.js" async defer></script>
</body>
</html>

在控制台中,我可以看到以下错误:

  • 无法执行&#39; postMessage&#39;在&#39; DOMWindow&#39;:提供的目标来源(&#39; null&#39;)与收件人窗口的来源(&#39; null&#39;)不匹配。人
  • 不推荐使用getAttributeNode()。请改用getAttribute()。 RS = AGLTcCOasCY_GkJWPJtHt2mUGUYuzPzTCg%20LINE%209%20%3E%20eval:34:434
  • 无法执行&#39; postMessage&#39;在&#39; DOMWindow&#39;:提供的目标来源(&#39; null&#39;)与收件人窗口的来源(&#39; null&#39;)不匹配。人
  • 无法执行&#39; postMessage&#39;在&#39; DOMWindow&#39;:提供的目标来源(&#39; null&#39;)与收件人窗口的来源(&#39; null&#39;)不匹配。 postmessageRelay
  • 无法执行&#39; postMessage&#39;在&#39; DOMWindow&#39;:提供的目标来源(&#39; null&#39;)与收件人窗口的来源(&#39; null&#39;)不匹配。 postmessageRelay
  • 无法执行&#39; postMessage&#39;在&#39; DOMWindow&#39;:提供的目标来源(&#39; null&#39;)与收件人窗口的来源(&#39; null&#39;)不匹配。 postmessageRelay
  • 无法执行&#39; postMessage&#39;在&#39; DOMWindow&#39;:提供的目标来源(&#39; null&#39;)与收件人窗口的来源(&#39; null&#39;)不匹配。 postmessageRelay
  • 无法执行&#39; postMessage&#39;在&#39; DOMWindow&#39;:提供的目标来源(&#39; null&#39;)与收件人窗口的来源(&#39; null&#39;)不匹配。 postmessageRelay
  • 无法执行&#39; postMessage&#39;在&#39; DOMWindow&#39;:提供的目标来源(&#39; null&#39;)与收件人窗口的来源(&#39; null&#39;)不匹配。 postmessageRelay

1 个答案:

答案 0 :(得分:2)

问题可能是Google+徽章可能要求您通过网络服务器运行代码,而不是通过文件系统在本地查看代码。

不要只打开HTML文件,而是尝试使用Web服务器托管它。这里有很多选择。如果您安装了Python,则可以尝试运行:

cd [directory where file is located]
python -m SimpleHTTPServer 8080

然后在http://localhost:8080

的网络浏览器中查看

我认为这可能是问题的原因是我在文件系统本地运行它时也会出错(尽管与你的错误不一样),但是当我通过网络浏览器查看它时,它运行正常,就像这样:

https://jsfiddle.net/wwkdgL5b/