【问题标题】:Prevent iFrame from getting focus when its src has an id防止 iFrame 在其 src 具有 id 时获得焦点
【发布时间】:2014-05-23 15:35:44
【问题描述】:

我有这个简单的 iframe:

<iframe src='http://edition.cnn.com/2014/05/23/world/asia/thai-coup-color-day-2/index.html?hpt=hp_c1#cnnContentContainer' class='ExFrame' id='ifr' style='width:100%;height:500px;' scrolling='yes'>

但是当我加载页面时,iframe 获得了焦点。有可能防止这种情况吗? 我试过这个:

$("#ifr").blur();

没有运气......

http://jsfiddle.net/ELRxm/

编辑:我想在 iframe 的 url 中使用 #ID

【问题讨论】:

  • 我不知道这是否有帮助:stackoverflow.com/questions/7208064/…
  • 你怎么知道它占据了焦点?
  • 我认为问题可能与您使用的 src 有关(该页面的 javascript 中可能有一些魔法)。
  • @AlexThomas 看到页面滚动
  • 看看是否符合您的需求:jsfiddle.net/X8CE8/1

标签: javascript jquery html css


【解决方案1】:

只需删除网址末尾的#cnnContentContainer

<iframe src='http://edition.cnn.com/2014/05/23/world/asia/thai-coup-color-day-2/index.html?hpt=hp_c1' class='ExFrame' id='ifr' style='width:100%;height:500px;' scrolling='yes'></iframe>

http://jsfiddle.net/ELRxm/1/

【讨论】:

    【解决方案2】:

    您将需要检查 Javascript 以了解框架发生了什么;它可能正在设置焦点。

    通过消除代码中的 javascript:

    $("#ifr").blur();
    

    ,并更改src我发现焦点在这个小提琴中仍然可以: http://jsfiddle.net/sablefoste/8gtLW/1/

    * 编辑 *

    每个@A。 Wolff 的评论,# 告诉浏览器专注于特定内容。但是你应该注意这个和你不拥有的网站中的 Javascript,它们都可以有所作为。

    【讨论】:

    【解决方案3】:

    您可以使用 setTimeout() 和 500 毫秒之类的时间将焦点更改为您选择的元素。

    【讨论】:

      【解决方案4】:

      sandbox 属性解决了我的问题

      【讨论】:

      • 具体是如何解决您的问题的?我自己不会接受这个答案;)
      • Barney:通常是 iframe 文档中的脚本将焦点切换到其元素之一。通过将 iframe 的 'sandbox' 属性 (developer.mozilla.org/en-US/docs/Web/HTML/Element/…) 设置为不包含标志 'allow-scripts' 的值,iframe 将被阻止运行脚本,从而阻止它获取焦点。当然,这是否是一个可接受的解决方案取决于在 iframe 中禁用脚本是否会产生其他不良后果。但在某些情况下,这会很好。
      猜你喜欢
      • 2011-11-04
      • 2011-10-05
      • 1970-01-01
      • 2013-11-26
      • 2011-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-08
      相关资源
      最近更新 更多