如何删除iframe中的tab stop?

问题描述 投票:1回答:2

如何删除iframe中的标签停止符?<iframe>? 该 <iframe> 是托管在我的域名上。

我已经尝试了以下代码。

var objIFrame = document.getElementById('my_iframe');
if (objIFrame != null) {   
   objIFrame.setAttribute('tabindex', '-1');
}

但我仍然得到iframe聚焦。

javascript jquery dom iframe tabindex
2个回答
1
投票

iFrame并不真正支持标签或选择,通常是iFrame内的文档或主体是可以选择的。试试这样的方法。

var objIFrame = document.getElementById('my_iframe');
    objIFrame.contentDocument.setAttribute('tabindex', '-1');
    objIFrame.contentDocument.getElementsByTagName('body')[0].setAttribute('tabindex', '-1');

0
投票

我学过 以条纹元素为例 来解决这个问题--他们使用 <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。

© www.soinside.com 2019 - 2024. All rights reserved.