Javascript 鼠标事件:FF和Chrome观察
下面是我的javascript 在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
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:我用布尔值尝试过,但问题相同。