首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AMP iframe中的Dynamic src

AMP iframe中的Dynamic src
EN

Stack Overflow用户
提问于 2020-10-09 21:39:19
回答 1查看 304关注 0票数 0

我在一个嵌入到其他网站的应用程序中工作,其中一些使用AMP。我目前使用的是amp-iframe,我需要iframe当前嵌入的网站url,这样我的应用程序才能正常工作。我尝试通过params传递它,以便在我的应用程序中使用它。

我一直在尝试做的是使用amp-script获得location.href (或location.origin + location.pathname),并设置一个AMP State来动态更改Iframe src。目前不起作用。

HTML:

代码语言:javascript
复制
<amp-script layout="container" src="https://cdn.website.com/script.js">
       <amp-iframe height="150" resizable sandbox="allow-scripts allow-same-origin allow-popups allow-forms" frameborder="0" src="https://website.com/dev/html" [src]="dynamicUrl">
          <div overflow tabindex="0"></div>
      </amp-iframe>
</amp-script>

JS:

代码语言:javascript
复制
function checkForAmp(method) {
  if (window.AMP && typeof window.AMP.setState === "function") {
    method();
  } else {
    setTimeout(function () {
      checkForAmp(method);
    }, 50);
  }
}

function getUrlAndUpdateWidget() {
  const url = `https://website.com/dev/html?dynamic-url=${
    window.AMP.win.location.origin + window.AMP.win.location.pathname
  }`;
  window.AMP.setState({ dynamicUrl: url });
}

checkForAmp(getUrlAndUpdateWidget);

有什么办法解决这个问题吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-10-14 00:34:43

不幸的是,您在amp-script中可以访问的AMP对象与worker外部的AMP对象不是一回事。

AMP.winundefined。我甚至不认为window.AMP.setState === "function"会工作。

有关如何在amp-script中使用AMP.setState的示例,请参阅See here

我们确实需要有人来介绍对location对象的支持。正如您所做的那样,在the github issue上发表评论会有所帮助。我们真正需要的是有时间贡献代码?的人

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

https://stackoverflow.com/questions/64281259

复制
相关文章

相似问题

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