找到第一个源时,停止iframe检查来自切换源的脚本

时间:2016-08-31 12:57:57

标签: javascript iframe

我有2个主机,1个是普通主机,另一个是游戏服务器。我需要在游戏服务器上存在的主机上显示一个页面(如果可用)。我正在运行此代码来更改iframe源,当页面不可用于托管上的另一个页面时。

我面临的问题是,当游戏服务器在线并且iframe获取源时,它仍会更改为其他页面ping2.php,而我希望它保留在游戏服务器页面上。我相信有一个停止缺失,但在脚本方面我是一个巨大的菜鸟。

<script>
function setIframeSrc() {
  var PingBoxWindow = document.getElementById('PingBoxWindow');
  var iframeLoadTimeout = setTimeout(function() {
      window.stop();
  }, 4000);
  PingBoxWindow.src = "localofflinepage.php";
  PingBoxWindow.onload = function() {
      clearTimeout(iframeLoadTimeout); 
  }
}

window.onload = setIframeSrc;
</script>

<div id="block">
<iframe id="PingBoxWindow" name="PingBoxWindow" width="396" height="180" src="somegameserverurl/stats.php" frameborder="0" scrolling="no" scrolling="0"></iframe>
</div>

1 个答案:

答案 0 :(得分:0)

问题是你正在改变src,无论iframe加载如何,你需要将两个东西连接在一起,换句话说,如果它发生(你正在做),标记加载成功,但只改变src如果该标志未在超时结束时设置。或者只是改变答案中的一行,即将src更改行移动到超时内部。

&#13;
&#13;
<!DOCTYPE html>
<html>
<head>
  <title></title>
  <script>
    function setIframeSrc() {
      var PingBoxWindow = document.getElementById('PingBoxWindow');
      var iframeLoadTimeout = setTimeout(function() {
        window.stop();
        PingBoxWindow.src = "http://www.randomwebsite.com/";
      }, 4000);

      PingBoxWindow.onload = function() {
        clearTimeout(iframeLoadTimeout);
      }
    }

    window.onload = setIframeSrc;
  </script>
</head>
<body>
  <iframe id="PingBoxWindow" src="http://www.theuselessweb.com"></iframe>
</body>
</html>
&#13;
&#13;
&#13;