放大器中不允许使用自定义JavaScript

时间:2018-11-29 13:23:46

标签: amp-html

不允许自己获取自定义JavaScript enter image description here

4 个答案:

答案 0 :(得分:1)

是的,AMP中不允许使用自定义Javascript,您可以使用amp-bind

一个简单的例子:

<p [text]="'Hello ' + foo">Hello World</p>

<button on="tap:AMP.setState({foo: 'amp-bind'})">Say "Hello amp-bind"</button>

别忘了在标头中添加必需的脚本:

<script async custom-element="amp-bind" src="https://cdn.ampproject.org/v0/amp-bind-0.1.js"></script>

答案 1 :(得分:0)

如果您正在使用Wordpress并遇到此问题,

Google搜索控制台在我的一些Wordpress博客页面上引发了错误。 Google无法为我的Blog索引我的AMP页面。错误是某些自定义JavaScript和CSS已注入AMP页面。经过调查,我发现W3 Total缓存正在将缩小的JS(JavaScript)和CSS(级联样式表)链接注入页面。

搜索控制台中显示错误:

不允许使用自定义JavaScript

除列入白名单的字体提供程序外,不支持外部样式表。

如何解决?

对于W3 Total Cache,您需要激活AMP扩展。这将从AMP页面中删除所有自定义JS和CSS。转到您的站点“管理控制台”-“性能”-“扩展”并激活AMP。该扩展内置W3 Total Cache。您只需要激活它即可。

这里有一个逐步的教程:https://josephkhan.me/custom-javascript-is-not-allowed-amp/ 这是一个YouTube视频,显示解决此问题的步骤:https://youtu.be/Luy1P1g7BEc

答案 2 :(得分:0)

我在 this AMP page 上遇到了同样的问题,在浏览了所有答案、博客和视频后,我的解决方案是禁用 AMP 帖子中的评论。

答案 3 :(得分:0)

AMP 现在支持自定义 JS。您可以使用 amp-script 并使其指向脚本。但是对于性能问题,您必须添加 type="text/plain"。看看下面带有 amp-list 的例子。

<amp-script layout="fixed-height" height="100" id="dataFunctions" script="fetch-data-script"> </amp-script>

<script id="fetch-data-script" type="text/plain" target="amp-script">
   function fetchData() {
      const data = {
        // follow this format for amp-list
        items: [
            { id: 1, name: "Tom" },
            { id: 2, name: "Jerry" },
        ],
      };
      return data;
    }

exportFunction("fetchData", fetchData);

</script>

<amp-list id="amp-list" width="auto" height="100" layout="fixed-height" src="amp-script:dataFunctions.fetchData" template="myTemplate">
    <div placeholder>Loading ...</div>
    <div fallback>Failed to load data.</div>

    <template type="amp-mustache" id="myTemplate">
        <div>
            <h4>
                {{id}}. {{name}}
            </h4>
        </div>
    </template>
</amp-list>

我想在这里指出一些细节。

  1. scriptamp-script 属性应与脚本标记的 id 属性匹配。
  2. idamp-script 属性应与函数名称一起在 amp-script 的 src 属性中提及。