只有按下按钮运行功能
问题描述:
我有一个脚本,检查图像,然后加载一个页面,如果它已被发现。只有按下按钮运行功能
我想附加到一个按钮的功能,以便它只检查按钮时按下,而不是页面加载。
<input type="button" id="ImgLoad" value="Check connection">
目前,页面在加载时重定向并且未附加到按钮按下。我很努力地看到我出了什么问题。
<script>
networkdelay = window.setTimeout(function()
{window.onclick=encaseimage()}, 1000);
</script>
<script>
clickdelay = window.setTimeout(function(){window.onclick=autoc()},
1000);
</script>
<script>
function encaseimage(){
function ImgLoad(myobj){
var randomNum = Date.now() || new Date().getTime();
var oImg=new Image;
oImg.src="http://192.168.8.1/images/ping2.jpg"+"?rand="+randomNum;
oImg.onload=function(){window.location.href = "/status.html";}
}
networkchecker = window.setInterval(function()
{window.onclick=ImgLoad()},1000);
}
</script>
答
如果你想加载按钮上的图像点击你需要附加到按钮点击事件。
像
$("#ImgLoad").click(function(){
var randomNum = Date.now() || new Date().getTime();
var oImg=new Image;
oImg.src="http://192.168.8.1/images/ping2.jpg"+"?rand="+randomNum;
oImg.onload=function(){window.location.href = "/status.html";}
});
答
要调用,而不是传递函数引用的函数:
window.onclick=ImgLoad()
应该是:
window.onclick=ImgLoad
否则ImgLoad
功能立即运行。
我应该说,加入onclick
到window
可能不是最好的设计(取决于你在做什么)。通常情况下,你会查找button
(可能是id),然后仅将一个点击处理程序附加到该特定button
。
在一个侧面说明,它看起来像其他window.onclick
事件也被设置为调用函数的结果:
window.onclick=encaseimage()}, 1000);
window.setTimeout(function(){window.onclick=autoc()},
你可能要回顾那些为好。 :)