首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google与定制Javascript

Google与定制Javascript
EN

Stack Overflow用户
提问于 2020-02-26 14:23:25
回答 1查看 2.5K关注 0票数 1

根据文档,我所需要做的就是将我想要通过Javascript“交谈”的块包装如下:

代码语言:javascript
复制
<amp-script layout="container" src="language-toggle.js">
    // Some basic HTML
</amp-script>

Javascript文件就在那里,我用一个简单的console.log进行了测试。然而,amp-script标记具有opacity: 0.7 (AMP默认样式)。显然,它需要类i-amphtml-hydrated是完全可见的。几个小时以来,我一直想把这件事搞清楚,就连谷歌也帮不了我。

控制台中有许多ServiceWorker错误,这些错误也都是由AMP生成的。我不知道他们为什么会出现,也不知道如何摆脱他们。这件事对我来说是一团糟。

下面是我目前添加的AMP脚本:

代码语言:javascript
复制
<script async src="https://cdn.ampproject.org/v0.js"></script>
<script async custom-element="amp-script" src="https://cdn.ampproject.org/v0/amp-script-0.1.js"></script>
<script async custom-element="amp-carousel" src="https://cdn.ampproject.org/v0/amp-carousel-0.1.js"></script>
<script async custom-element="amp-youtube" src="https://cdn.ampproject.org/v0/amp-youtube-0.1.js"></script>

旋转木马和YouTube运行得很好。

谁能把这件事弄清楚吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-27 19:06:37

我强烈建议通过将#development=1添加到URL来启用AMP开发模式。

相对URL在标记的amp-script src属性中是不允许的(开发参数会告诉您这一点)。

不过,你也可以拥有这样的东西:

代码语言:javascript
复制
<amp-script  width="1" height="1" script="demo"></amp-script>
<script type="text/plain" target="amp-script" id="demo">
  console.log('Foobar');
</script>

但是,在头脑中的元标记中需要一个匹配的散列:

代码语言:javascript
复制
<head>
  ...
<meta
  name="amp-script-src"
  content="sha384-hash"
/>
</head>

同样,开发参数将告诉您应该使用的哈希,尽管您也可以在开发期间禁用哈希检查。

以上所有内容仍将不会补充您的安培脚本元素。为了使元素水合物化,脚本必须实际添加到DOM中,例如在单击按钮时添加div:

代码语言:javascript
复制
<amp-script  layout="container" script="demo">
  <button id="hello">Add headline</button>
</amp-script>
<script type="text/plain" target="amp-script" id="demo">
  console.log('Foobar');
  const button = document.getElementById('hello');
  button.addEventListener('click', () => {
    const h1 = document.createElement('h1');
    h1.textContent = 'Hello World!';
    document.body.appendChild(h1);
  });
</script>

要意识到你被允许做的事情是非常有限的。例如,没有事件侦听器,上面的代码段将无法工作,因此您不能简单地添加一个元素而不需要用户交互。

有关引用的消息可以安全地忽略-- AMP示例所做的完全一样,AMP仍然通过验证。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60416034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档