在谷歌Chrome升级到79.0.3945之后,包含在<iframe>中的autofocus="true"在谷歌Chrome中不起作用的原因是由于Chrome 79版本引入了一个新的安全特性,即焦点管理策略的更改。
在Chrome 79中,如果一个页面中包含多个<iframe>元素,并且这些<iframe>元素中的某个元素设置了autofocus属性,那么只有第一个<iframe>元素中的autofocus元素会自动获取焦点,其他的<iframe>元素中的autofocus元素将不会自动获取焦点。
这个更改是为了增强安全性,防止恶意网站滥用autofocus属性来欺骗用户。然而,这也导致了一些网站在Chrome 79中的autofocus功能失效的问题。
解决这个问题的方法是使用JavaScript来手动设置焦点。可以在<iframe>加载完成后,通过JavaScript代码找到需要自动获取焦点的元素,并使用focus()方法来设置焦点。
以下是一个示例代码:
<iframe src="your-iframe-url" onload="setFocus()"></iframe>
<script>
function setFocus() {
var iframe = document.getElementsByTagName('iframe')[0];
var iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
var autofocusElement = iframeDocument.querySelector('[autofocus]');
if (autofocusElement) {
autofocusElement.focus();
}
}
</script>
这段代码会在<iframe>加载完成后,通过querySelector()方法找到第一个具有autofocus属性的元素,并使用focus()方法设置焦点。
需要注意的是,由于安全策略的限制,如果<iframe>中的内容来自不同的域名,那么在父页面中是无法直接访问<iframe>中的内容的。在这种情况下,需要在<iframe>中的内容页面中添加相应的JavaScript代码来设置焦点。
希望以上解答对您有帮助。如果您需要了解更多关于谷歌Chrome的信息,可以访问腾讯云Chrome浏览器产品介绍页面:腾讯云Chrome浏览器。
领取专属 10元无门槛券
手把手带您无忧上云