如何防止在页面加载时执行 javascript 函数
How to prevent executing a javascript function on page load?
我有一个本地网页来管理路由器上的 ssh 隧道,我正在尝试对我的 ssh 隧道发出实时声音通知。当它连接/断开连接时,它会播放声音。到目前为止,它运行良好,但问题是每次我加载网页时它都会播放声音,我只希望它在我的 ssh 连接/断开连接时播放声音,我不希望它在加载页面时播放声音即使它满足条件(连接/断开连接)。这是我的脚本:
var count = 0; // variable to prevent my function to play sound every second
function sshNotification() {
$.ajaxSetup({ cache: false });
$.ajax({
type:"get",
url:"cgi-bin/check", // CGI script to check whether my ssh is connected / disconnected
success:function(data) {
if (data.indexOf("192.168.1.1:1080")>-1) {
if (count == 0) {
var audio = new Audio("on.ogg"); // Play a sound when it's connected
audio.play();
count = 1;
};
}
else {
if (count == 1) {
var audio = new Audio("off.ogg"); // Play a sound when it's disconnected
audio.play();
count = 0;
};
}
setTimeout(sshNotification, 1000);
}
});
};
sshNotification();
当我的 ssh 连接时,CGI 输出如下所示:
192.168.1.1:1080
当我的 ssh 断开连接时,它不会输出任何内容。如何播放声音通知,而不是在页面加载时播放,但仅在我的 ssh 连接/断开连接时播放。对不起,如果你认为我的解释有点混乱,请随时问你不明白哪一部分。谢谢。
因此,
如果您只想检测状态更改:
var count = 0; // variable to prevent my function to play sound every second
var lastState;
function sshNotification() {
$.ajaxSetup({ cache: false });
$.ajax({
type:"get",
url:"cgi-bin/check", // CGI script to check whether my ssh is connected / disconnected
success:function(data) {
if (data.indexOf("192.168.1.1:1080")>-1) {
if (count == 0) {
if(lastState !== 'connected') {
var audio = new Audio("on.ogg"); // Play a sound when it's connected
audio.play();
count = 1;
}
lastState = 'connected';
};
}
else {
if (count == 1) {
if(lastState !== 'not_connected') {
var audio = new Audio("off.ogg"); // Play a sound when it's disconnected
audio.play();
count = 0;
}
lastState = 'not_connected';
};
}
setTimeout(sshNotification, 1000);
}
});
};
sshNotification();
相关文章:
- 无法在通过jQuery的ajax加载的页面中执行javascript
- 在Safari执行javascript之前对其进行修改
- 如何在执行此特定onclick事件时执行JavaScript函数
- 如何在从浏览缓存加载页面时执行javascript
- 使用Rhino和ASE执行Javascript的区别
- 如何在加载完整页面后严格执行javascript代码
- 在动态加载的对话框中执行Javascript
- 在Sinatra中执行Javascript
- 通过AJAX加载页面并执行javascript和CSS
- 适用于多种浏览器的Selenium-需要能够执行javascript的webDriver
- 如何在seleniumwebdriver中执行javascript提示并等待接受输入
- 在window.open()生成的窗口中执行JavaScript
- AJAX成功回调-执行javascript时出现问题
- 通过指令在控制器中执行javascript函数
- 从React Native Android原生地执行JavaScript代码
- iframe未执行Javascript方法(PHP)
- 执行JavaScript代码,使用selenium webdriver或WatiN从控制台获取日志
- 通过web驱动程序异步执行Javascript
- 如何在长时间执行JavaScript期间显示微调器
- 点击困难时执行javascript函数