我无法弄清楚为什么以下代码可以在IE和Firefox上的另一台计算机上工作,但在我的笔记本电脑上
我已经卸载并重新安装了Firefox和java
单击时,每个部分都有一个确认和删除按钮,可以设置确认或删除警报
在IE中工作正常,在另一台计算机上使用Firefox副本
在问题计算机上,单击按钮时屏幕会闪烁,但警报既不清晰也不确认
apache2日志中不会抛出任何错误
它基本上将三个变量传递给另一个更新sql表的php页面
在sql中也没有抛出任何错误。
只是屏幕闪烁,问题计算机没有变化。
在同一台计算机上的IE中工作正常。
if ($_SESSION['pH1_Low_Alarm'] > 0) {
echo "<tr>";
echo "<td>";
echo $_SESSION['pH1_Low_Time'];
echo "</td>";
echo "<td>pH1 Low</td>";
if ($_SESSION['pH1_Low_Alarm'] == 1) {
echo "<td>Unacknowledged</td>";
echo "<td></td>";
echo "<td><input type=\"submit\" name=\"alarmname_ack_id\" id=\"alarmname_ack_id\" value=\"Acknowledge\" onclick=\"alarm_sql('pH1','Low_Alarm',3)\" /></td>";
}
if ($_SESSION['pH1_Low_Alarm'] == 2) {
echo "<td>Unacknowledged</td>";
echo "<td align=\"center\"><img src=\"img/email.png\" /></td>";
echo "<td><input type=\"submit\" name=\"alarmname_ack_id\" id=\"alarmname_ack_id\" value=\"Acknowledge\" onclick=\"alarm_sql('pH1','Low_Alarm',4)\" /></td>";
}
if ($_SESSION['pH1_Low_Alarm'] == 3) {
echo "<td>Acknowledged</td>";
echo "<td></td>";
echo "<td></td>";
}
if ($_SESSION['pH1_Low_Alarm'] == 4) {
echo "<td>Acknowledged</td>";
echo "<td align=\"center\"><img src=\"img/email.png\" /></td>";
echo "<td></td>";
}
echo "<td><input type=\"submit\" name=\"alarmname_ack_id\" id=\"alarmname_ack_id\" value=\"Delete\" onclick=\"alarm_sql('pH1','Low_Alarm',0)\" /></td>";
echo "</tr>";
}
onclick事件调用的函数
function alarm_sql(sensorname, alarmname, alarmvalue) {
var xmlhttp;
if (window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{ // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
alarm_php_string = new String;
alarm_php_string = "sql/sql_alarm_set.php?sensorname=" + sensorname + "&alarmname=" + alarmname + "&alarmvalue=" + alarmvalue;
xmlhttp.open("GET",alarm_php_string,true);
xmlhttp.send();
sleep(500);
document.location.reload(true);
}
更新
如果我右键单击确认或删除按钮并选择检查元素:
然后在调试器下的结果窗口中,我在var声明之后的函数开头放置一个断点
然后我可以点击按钮单步执行代码,这实际上是这样工作的
不确定当单个步骤有效但没有断点时代码失败意味着什么。
这是在无效工作时单击确认按钮后在控制台中显示的内容。
GET
http://192.168.1.200/yieldbuddy/www/alarms.php [HTTP/1.1 200 OK 16ms]
GET
http://192.168.1.200/yieldbuddy/www/img/background.png [HTTP/1.1 200 OK 11ms]
GET
http://192.168.1.200/yieldbuddy/www/img/banner.png [HTTP/1.1 200 OK 16ms]
GET
http://192.168.1.200/yieldbuddy/www/img/email.png
我的笔记本电脑上的Window7安装似乎存在问题。我可以在家里的其他所有计算机上运行此代码而不会出现问题。升级到Firefox 48后的所有其他计算机仍然运行代码没有问题。无论是什么导致它发生甚至在删除并重新安装firefox和java之后。看起来我正准备在问题计算机上进行全新的安装操作系统。
答案 0 :(得分:0)
此问题已在Firefox 48中通过以下操作得到纠正。
菜单/选项/高级/网络/连接 - 设置
从
更改代理设置使用系统代理
到
无代理
不确定原因但是这更正了问题计算机上的问题,网页在更改后按预期工作。