comparison mod_json_streams/strophe.jsonstreams.js @ 352:0b4fe47e648d

mod_json_streams/strophe.jsonstreams.js: Fix some compatability issues.
author Waqas Hussain <waqas20@gmail.com>
date Sat, 02 Apr 2011 04:27:43 +0500
parents 85d3c04c64f6
children 7dbde05b48a9
comparison
equal deleted inserted replaced
351:85d3c04c64f6 352:0b4fe47e648d
37 send: function(data) { 37 send: function(data) {
38 data = JSON.stringify({"s":data}); 38 data = JSON.stringify({"s":data});
39 return _xhr.send(data); 39 return _xhr.send(data);
40 } 40 }
41 }; 41 };
42 xhr.onreadystatechange = _xhr.onreadystatechange; 42 var req = this;
43 xhr.onreadystatechange = this.func.bind(null, this);
43 _xhr.onreadystatechange = function() { 44 _xhr.onreadystatechange = function() {
44 xhr.readyState = _xhr.readyState; 45 xhr.readyState = _xhr.readyState;
45 if (xhr.readyState != 4) { 46 if (xhr.readyState != 4) {
46 xhr.status = 0; 47 xhr.status = 0;
47 xhr.responseText = ""; 48 xhr.responseText = "";
48 xhr.responseXML = null; 49 xhr.responseXML = null;
49 } else { 50 } else {
50 xhr.status = _xhr.status; 51 xhr.status = _xhr.status;
51 xhr.responseText = _xhr.responseText; 52 xhr.responseText = _xhr.responseText;
52 xhr.responseXML = _xhr.responseXML; 53 xhr.responseXML = _xhr.responseXML;
53 if (_xhr.responseText && !_xhr.responseXML) { 54 if (_xhr.responseText && !(_xhr.responseXML
55 && _xhr.responseXML.documentElement
56 && _xhr.responseXML.documentElement.tagName != "parsererror")) {
54 var data = JSON.parse(_xhr.responseText); 57 var data = JSON.parse(_xhr.responseText);
55 if (data && data.s) { 58 if (data && data.s) {
56 xhr.responseText = data.s; 59 xhr.responseText = data.s;
57 xhr.responseXML = parseXMLString(data.s); 60 xhr.responseXML = parseXMLString(data.s);
58 } 61 }
59 } 62 }
60 } 63 }
61 if (xhr.onreadystatechange) { xhr.onreadystatechange(); } 64 if ("function" == typeof xhr.onreadystatechange) { xhr.onreadystatechange(req); }
62 } 65 }
63 return xhr; 66 return xhr;
64 }; 67 };
65 } else { 68 } else {
66 Strophe.error("jsonstreams plugin loaded, but JSON not found." + 69 Strophe.error("jsonstreams plugin loaded, but JSON not found." +