[英]Mouse Events : FF and Chrome observation
以下是我的JavaScript。
init()在onload
上被onload
。 在firefox
和chrome
觀察不同
在firefox
:它工作正常。如果發生任何事件(鼠標移動,向上,向下),則Changed-sending
警報;如果沒有事件,則獲取Not Changed
警報。
但是在chrome
:無論我是否移動鼠標,我總是會收到Changed-sending
警報,這是什么問題。
請幫助。
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; } } }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.