如何删除iframe中的标签停止符?<iframe>
? 该 <iframe>
是托管在我的域名上。
我已经尝试了以下代码。
var objIFrame = document.getElementById('my_iframe');
if (objIFrame != null) {
objIFrame.setAttribute('tabindex', '-1');
}
但我仍然得到iframe聚焦。
iFrame并不真正支持标签或选择,通常是iFrame内的文档或主体是可以选择的。试试这样的方法。
var objIFrame = document.getElementById('my_iframe');
objIFrame.contentDocument.setAttribute('tabindex', '-1');
objIFrame.contentDocument.getElementsByTagName('body')[0].setAttribute('tabindex', '-1');
我学过 以条纹元素为例 来解决这个问题--他们使用 <iframes>
收集信用卡号码,并有一个平滑的标签环通过他们的所有领域。
任何数量的设置 tabindex
上的任何东西对我来说都是如此,所以我选择用JavaScript来代替。我通过监听 <iframe>
的窗口进行聚焦,然后将焦点重定向到我想要的元素上。这就要求你在控制 <iframe>
'的内容。
window.addEventListener('focus', function() {
document.getElementById('myInput').focus();
})
下面是一个例子。
index.html
<html>
<body>
My input
<input type="text" />
<iframe src="https://www.example.com/iframe.html" />
<body>
</html>
iframe.html
<html>
<body>
More inputs
<input type="text" />
<input type="text" />
<input type="text" />
<script>
window.addEventListener('focus', function() {
document.getElementById('myInput').focus();
})
</script>
<body>
</html>
我注意到这种行为是Internet Explorer 11和Firefox 76所特有的,但并没有影响到Chrome 81或Edge 81。