Javascript 鼠标事件:FF和Chrome观察

Javascript 鼠标事件:FF和Chrome观察,javascript,ajax,Javascript,Ajax,下面是我的javascript 在onload上调用Init()。在firefox和chrome 在firefox中:工作正常。如果发生任何事件(鼠标移动、上下移动),则发送警报,如果未发生任何事件,则获取未更改的警报 但是在chrome:无论我是否移动鼠标,我总是在发送警报时收到更改。这里的问题是什么 请帮忙 var state="false"; function Init () { if (document.addEventListener) { alert("here"); docum

下面是我的javascript

onload
上调用Init()。在
firefox
chrome

firefox中
:工作正常。如果发生任何事件(鼠标移动、上下移动),则发送
警报,如果未发生任何事件,则获取
未更改的警报

但是在
chrome
:无论我是否移动鼠标,我总是在发送
警报时收到
更改。这里的问题是什么

请帮忙

var state="false";
function Init () {
if (document.addEventListener) {  
alert("here");
document.addEventListener ("mousedown", function () {ChangeState ()}, false);
document.addEventListener ("mouseup", function () {ChangeState ()}, false);
document.addEventListener ("mousemove", function () {ChangeState ()}, false);
document.addEventListener ("keydown", function () { ChangeState ()}, false);
document.addEventListener ("scroll", function () {ChangeState ()}, false);
}
setInterval(function(){ myFunction();},7000);
}


function myFunction () {
if(state=="true"){
var xhr = getXMLHttpRequest();
xhr.open("GET","http://www.google.com", true);
alert('Changed-sending');
xhr.send();
state="false";
}else{
alert('Not Changed');
}
}

function ChangeState () {
state="true";
}

function getXMLHttpRequest() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}else {  
try { 
return new(ActiveXObject)("MSXML2.XMLHTTP.3.0");
} catch (e) {
alert("aaa22333"); 
log("browser doesn support AJAX."); 
return null;  } }  }

我对您提供的代码没有任何问题,即使没有更改“true”和“false”,也必须添加对Init的调用,否则将不会发生任何事情。当比较某个事物是真是假时,我会使用===而不是==

var state=false;
function Init () {
 if (document.addEventListener) {  
  document.addEventListener ("mousedown", function () {ChangeState ()}, false);
  document.addEventListener ("mouseup", function () {ChangeState ()}, false);
  document.addEventListener ("mousemove", function () {ChangeState ()}, false);
  document.addEventListener ("keydown", function () { ChangeState ()}, false);
  document.addEventListener ("scroll", function () {ChangeState ()}, false);
}
setInterval(function(){ myFunction();},1000);
}
Init();

function myFunction () {
 if(state===true){
  var xhr = getXMLHttpRequest();
  xhr.open("GET","http://www.google.com", true);
  console.log('Changed-sending');
  xhr.send();
  state=false;
 }else{
  console.log('Not Changed');
 }
}

function ChangeState () {
 state=true;
}

function getXMLHttpRequest() {
 if (window.XMLHttpRequest) {
  return new XMLHttpRequest();
 }else {  
   try { 
    return new(ActiveXObject)("MSXML2.XMLHTTP.3.0");
   } catch (e) {
    alert("aaa22333"); 
    log("browser doesn support AJAX."); 
    return null;  } }  }

你为什么用布尔作为字符串?@elclanrs:hmn..我会纠正它。这可能是个问题吗?我不认为,但我会在控制台中尝试任何错误?@HMR:没有错误。它运行正常,但在FF和chrome中的行为不同。您也可以尝试。@elclanrs:我用布尔值尝试过,但问题相同。