簡體   English   中英

鼠標事件:FF和Chrome觀察

[英]Mouse Events : FF and Chrome observation

以下是我的JavaScript。

init()在onload上被onload firefoxchrome觀察不同

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM