如何将焦点设置在跨域的 iframe 上

Posted

技术标签:

【中文标题】如何将焦点设置在跨域的 iframe 上【英文标题】:How to set focus on an iframe that is cross-domain 【发布时间】:2020-05-17 12:32:33 【问题描述】:

类似于下面的帖子:

    Set focus on iframe in Chrome

    Setting focus to iframe contents

我希望能够从根/父级将焦点传递给 iframe。

iframe 中可能成为焦点的任何内容都可以。

iframe.contentWindow.focus();

但是,iframe.contentWindow 不可访问,因为它是一个跨域框架。

【问题讨论】:

你不能访问它 如果你不控制iframe中的域,那么你就做不到。如果您确实控制了这两个域,那么您可以使用Window.postMessage() 在两者之间进行通信。这样您就可以在 iframe 中向页面发送消息,然后在 iframe 本身中设置焦点。 【参考方案1】:

似乎答案是:不可能。

如果 iframe 中有脚本在运行,您可以直接从那里调用 focus。

【讨论】:

以上是关于如何将焦点设置在跨域的 iframe 上的主要内容,如果未能解决你的问题,请参考以下文章

跨域怎么解决

检测此页面是不是在跨域 iframe 内部的万无一失的方法

iframe子页面在跨域情况下使用父页面的方法

在父页面中如何修改iframe中嵌套的子页面的字体大小和样式,急!急!貌似涉及到了跨域的问题希望各

解决跨域的问题

如何用javascript 跨域获取iframe子页面的元素信息