首页 > 解决方案 > 在 JavaScript 中将消息发布到跨域 iframe

问题描述

我是 JavaScript 新手,我正在尝试向我的 iframe 发布一条消息以滚动它。我正在尝试使用此代码来实现它。

scroll(i) {
  var src = $("#iframe").attr("src");
  $("#iframe").contentWindow.postMessage(i, src);
}

此代码在 Chrome 控制台中启动时有效,但从 Web 应用程序(使用按钮)启动时无效。

我收到一条错误消息,提示 contentWindow 未定义。有人知道为什么吗?

标签: javascriptangulargoogle-chromeiframe

解决方案


出于某种原因,我的代码似乎是$("#iframe")作为一个数组管理的。我通过这样做解决了这个问题:

scroll(i) {
  var src = $("#iframe")[0].attr("src");
  $("#iframe")[0].contentWindow.postMessage(i, src);
}

推荐阅读