无法使用 Google 代码在 'DOMWindow' 上执行 'postMessage'

Failed to execute 'postMessage' on 'DOMWindow' using Google code

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

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>

已满 HTML index.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>

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

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

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

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

然后在网络浏览器中查看 http://localhost:8080


我认为这可能是问题所在的原因是,当 运行 在本地将其从文件系统中删除时,我也会遇到错误(虽然与您的错误不同),但是当我通过网络查看它时浏览器,它工作正常,像这样:

https://jsfiddle.net/wwkdgL5b/