Javascript onclick无法在Firefox中运行

时间:2016-08-20 23:59:16

标签: javascript jquery html firefox onclick

我无法弄清楚为什么以下代码可以在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之后。看起来我正准备在问题计算机上进行全新的安装操作系统。

1 个答案:

答案 0 :(得分:0)

此问题已在Firefox 48中通过以下操作得到纠正。

菜单/选项/高级/网络/连接 - 设置

更改代理设置

使用系统代理

无代理

不确定原因但是这更正了问题计算机上的问题,网页在更改后按预期工作。