Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当div出现时运行javascript_Javascript_Jwplayer - Fatal编程技术网

当div出现时运行javascript

当div出现时运行javascript,javascript,jwplayer,Javascript,Jwplayer,当DIV出现时,我需要运行javascript(停止JWPlayer)。页面完全加载后约15秒显示 到目前为止我掌握的代码 if (document.getElementById("overlay_div")) { jwplayer().stop(); } 我猜我的代码在页面加载时查找overlay_div,而不是在一段时间后(本例中为15秒) 编辑:事实证明DIV实际上一直在那里,但在这个时间间隔之后它会从display:none切换到display:block。有没有办法运行脚本whan

当DIV出现时,我需要运行javascript(停止JWPlayer)。页面完全加载后约15秒显示

到目前为止我掌握的代码

if (document.getElementById("overlay_div")) { jwplayer().stop(); }
我猜我的代码在页面加载时查找overlay_div,而不是在一段时间后(本例中为15秒)

编辑:事实证明DIV实际上一直在那里,但在这个时间间隔之后它会从display:none切换到display:block。有没有办法运行脚本whan div turns to display:block

编辑2:在@Elbunelo的帮助下,我自己解决了这个问题 以下是代码,以防任何人需要它:

var interval = setInterval(function(){
 if (document.getElementById("overlay_main_div").style.display=="block"){ 
      jwplayer().stop(); 
      clearInterval(interval);
 } }, 1000);

你试过使用间歇时间吗?i、 e.每1000毫秒左右检查一次div是否存在,然后停止播放器

var interval = setInterval(function(){
     if (document.getElementById("overlay_div")) { 
          jwplayer().stop(); 
          clearInterval(interval);
     }
}, 1000);

你试过使用间歇时间吗?i、 e.每1000毫秒左右检查一次div是否存在,然后停止播放器

var interval = setInterval(function(){
     if (document.getElementById("overlay_div")) { 
          jwplayer().stop(); 
          clearInterval(interval);
     }
}, 1000);

您可以在div之后添加脚本标记,这样它将在标记就位时运行

<div id="overlay_div"></div>
<script type="text/javascript">
if (document.getElementById("overlay_div")) { jwplayer().stop(); }
</script>

if(document.getElementById(“overlay_div”){jwplayer().stop();}

您可以在div之后添加script标记,这样它将在标记就位时运行

<div id="overlay_div"></div>
<script type="text/javascript">
if (document.getElementById("overlay_div")) { jwplayer().stop(); }
</script>

if(document.getElementById(“overlay_div”){jwplayer().stop();}

这取决于div元素的显示方式:

  • 在代码中:只需调用函数;)
  • 在第三方代码中:
    • 如果节点插入到DOM树中,则使用变异事件观察程序
    • 如果节点以另一种不可检测的方式(CSS添加)显示,并且作为前一种方法的回退,只需创建一个超时调用,并将其限制为n次:
-

var时间=0;
函数divcheck(){
if(document.getElementById(“overlay_div”){jwplayer().stop();}

否则,如果(乘以则取决于div元素的显示方式:

  • 在代码中:只需调用函数;)
  • 在第三方代码中:
    • 如果节点插入到DOM树中,则使用变异事件观察程序
    • 如果节点以另一种不可检测的方式(CSS添加)显示,并且作为前一种方法的回退,只需创建一个超时调用,并将其限制为n次:
-

var时间=0;
函数divcheck(){
if(document.getElementById(“overlay_div”){jwplayer().stop();}

否则如果(times)将jwplayer().stop()放在实际显示div的同一个函数中,而不是将逻辑基于div可见性,不是更好吗?将jwplayer().stop()放在实际显示div的同一个函数中,而不是将逻辑基于div可见性,不是更好吗在实际显示div的同一个函数中?谢谢,这很有帮助,但是,事实证明div实际上一直在那里,但它在这个时间间隔后从display:none切换到display:block。有没有办法运行脚本whan div转向display:block?我知道如何在Mootools中执行此操作,但我不记得如何获取sp本机Javascript中的特定样式规则。您是否使用任何框架?快速编辑:如果您没有使用任何框架,post可能会很方便。只需获取“显示”样式并检查其是否设置为block,而不是检查元素是否存在。这很有帮助,但是,事实证明DIV实际上一直存在,但它从disp切换lay:none to display:block在这个时间间隔之后。有没有办法运行script whan div转为display:block?我知道如何在Mootools中实现,但我不记得如何在本机Javascript中获得特定的样式规则。你使用任何框架吗?快速编辑:如果你没有使用任何框架,post可能会很方便。只需获取“display”命令即可le并检查其是否设置为block,而不是检查元素是否存在