Google AMP和自定义Javascript

Google AMP和自定义Javascript,javascript,amp-html,Javascript,Amp Html,根据,我所需要做的就是将我想通过Javascript“对话”的块包装成这样: <amp-script layout="container" src="language-toggle.js"> // Some basic HTML </amp-script> Carousel和YouTube运作良好 有人能解释一下吗?我强烈建议通过在URL中添加#development=1来启用AMP开发模式 在amp script标记的src属性中不允许使用相对URL(开发参数

根据,我所需要做的就是将我想通过Javascript“对话”的块包装成这样:

<amp-script layout="container" src="language-toggle.js">
    // Some basic HTML
</amp-script>
Carousel和YouTube运作良好


有人能解释一下吗?

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

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

不过,您可以有这样的功能:


console.log('Foobar');
但您需要在头部的元标记中使用匹配的哈希:


...
同样,development参数将告诉您应该使用的散列,尽管您也可以在开发期间禁用散列检查

以上所有这些仍然不会影响amp脚本元素。为了使元素水合,脚本必须实际添加到DOM中,例如在单击按钮时添加一个div:


添加标题
console.log('Foobar');
const button=document.getElementById('hello');
按钮。addEventListener('单击',()=>{
常量h1=document.createElement('h1');
h1.textContent='helloworld!';
文件.正文.附件(h1);
});
要知道,你被允许做的事情是非常有限的。例如,如果没有事件侦听器,上面的代码段将无法工作,因此您不能在没有用户交互的情况下简单地添加元素


可以安全地忽略有关引用的消息-AMP示例也确实如此,AMP仍然通过验证。

我强烈建议通过在URL中添加
#development=1
来启用AMP开发模式。
amp script
标记的src属性中不允许使用相对URL。除此之外,我认为输出只是为了提供信息,而不是真正的错误。他们的例子也是如此:这仍然留下了水合作用的问题。。。
<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>