inspect your object :) request[i].inspect() convert obj to string
2009/8/22 Alex Mcauley <[email protected]> > > In my quest to create a function that globaly tells a page when a > request is going on with the ability to disable certain form elements > i have been delving into Ajax.Responders. > > I stumbled upon this page > > > http://www.mail-archive.com/[email protected]/msg06312.html > > It basically says that one can access the container that the > request.responseText is headed for - yet i do what the demo says and > it returns an Object.. > > > What the best thing to do would be somehting like arguments callee > (the button or node that created the request) be returned in the > Object instance > > for example. > > Ajax.Responders.register({ > onCreate: function(request) { > var what_called_me_was request.(I dont know what to put here!!!!)... > } > }); > > Can anyone help .. > > I have included the whole object below which has been created like > this... > var r=''; > for(var i in request) { > r+=request[i]+' '; > } > $('debug').update(r); > > > and here is the output... > > [object Object] [object Object] [object XMLHttpRequest] /requests/ > ShowCompanyList post [object Object] function ($super, container, url, > options) { this.container = {success: container.success || container, > failure: container.failure || (container.success ? null : container)}; > options = Object.clone(options); var onComplete = options.onComplete; > options.onComplete = function (response, json) {this.updateContent > (response.responseText);if (Object.isFunction(onComplete)) {onComplete > (response, json);}}.bind(this); $super(url, options); } function > (responseText) { var receiver = this.container[this.success() ? > "success" : "failure"], options = this.options; if (! > options.evalScripts) { responseText = responseText.stripScripts(); } > if (receiver = $(receiver)) { if (options.insertion) { if > (Object.isString(options.insertion)) { var insertion = {}; insertion > [options.insertion] = responseText; receiver.insert(insertion); } else > { options.insertion(receiver, responseText); } } else { receiver.update > (responseText); } } } function klass() { this.initialize.apply(this, > arguments); } false function (url) { this.url = url; this.method = > this.options.method; var params = Object.clone > (this.options.parameters); if (!["get", "post"].include(this.method)) > { params._method = this.method; this.method = "post"; } > this.parameters = params; if (params = Object.toQueryString(params)) > { if (this.method == "get") { this.url += (this.url.include("?") ? > "&" : "?") + params; } else if (/Konqueror|Safari|KHTML/.test > (navigator.userAgent)) { params += "&_="; } } try { var response = new > (Ajax.Response)(this); if (this.options.onCreate) > { this.options.onCreate(response); } Ajax.Responders.dispatch > ("onCreate", this, response); this.transport.open > (this.method.toUpperCase(), this.url, this.options.asynchronous); if > (this.options.asynchronous) { this.respondToReadyState.bind(this).defer > (1); } this.transport.onreadystatechange = this.onStateChange.bind > (this); this.setRequestHeaders(); this.body = this.method == "post" ? > this.options.postBody || params : null; this.transport.send > (this.body); if (!this.options.asynchronous && > this.transport.overrideMimeType) { this.onStateChange(); } } catch (e) > { this.dispatchException(e); } } function () { var readyState = > this.transport.readyState; if (readyState > 1 && !(readyState == 4 && > this._complete)) { this.respondToReadyState > (this.transport.readyState); } } function () { var headers = {'X- > Requested-With': "XMLHttpRequest", 'X-Prototype-Version': > Prototype.Version, Accept: "text/javascript, text/html, application/ > xml, text/xml, */*"}; if (this.method == "post") { headers['Content- > type'] = this.options.contentType + (this.options.encoding ? "; > charset=" + this.options.encoding : ""); if > (this.transport.overrideMimeType && (navigator.userAgent.match(/Gecko\/ > (\d{4})/) || [0, 2005])[1] < 2005) { headers.Connection = "close"; } } > if (typeof this.options.requestHeaders == "object") { var extras = > this.options.requestHeaders; if (Object.isFunction(extras.push)) { for > (var i = 0, length = extras.length; i < length; i += 2) { headers > [extras[i]] = extras[i + 1]; } } else { $H(extras).each(function > (pair) {headers[pair.key] = pair.value;}); } } for (var name in > headers) { this.transport.setRequestHeader(name, headers[name]); } } > function () { var status = this.getStatus(); return !status || status > >= 200 && status < 300; } function () { try { return > this.transport.status || 0; } catch (e) { return 0; } } function > (readyState) { var state = Ajax.Request.Events[readyState], response = > new (Ajax.Response)(this); if (state == "Complete") { try > { this._complete = true; (this.options["on" + response.status] || > this.options["on" + (this.success() ? "Success" : "Failure")] || > Prototype.emptyFunction)(response, response.headerJSON); } catch (e) > { this.dispatchException(e); } var contentType = response.getHeader > ("Content-type"); if (this.options.evalJS == "force" || > (this.options.evalJS && this.isSameOrigin() && contentType && > contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)? > \s*$/i))) { this.evalResponse(); } } try { (this.options["on" + state] > || Prototype.emptyFunction)(response, response.headerJSON); > Ajax.Responders.dispatch("on" + state, this, response, > response.headerJSON); } catch (e) { this.dispatchException(e); } if > (state == "Complete") { this.transport.onreadystatechange = > Prototype.emptyFunction; } } function () { var m = this.url.match(/^ > \s*https?:\/\/[^\/]*/); return !m || m[0] == "#{protocol}//#{domain}# > {port}".interpolate({protocol: location.protocol, domain: > document.domain, port: location.port ? ":" + location.port : ""}); } > function (name) { try { return this.transport.getResponseHeader(name) > || null; } catch (e) { return null; } } function () { try { return eval > ((this.transport.responseText || "").unfilterJSON()); } catch (e) > { this.dispatchException(e); } } function (exception) > { (this.options.onException || Prototype.emptyFunction)(this, > exception); Ajax.Responders.dispatch("onException", this, > exception); } > > > Perhaps this is one for the Devs!! > > It goes without saying i think that at any time a request is going on > it would be very handy to know where the result of that request is > heading to (the element) and the element that called it (so we can > disable / enable it when the request is Completed).... > > Perhaps it would be a nice edition to Prototype2.0 while i hack mine > to pieces! > > All help welcome > > Thanks in advance > > Alex > > > > -- Best Regards, Vladimir Tkach +972-54-7574166 [email protected] http://teamco-anthill.blogspot.com/ --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Prototype & script.aculo.us" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/prototype-scriptaculous?hl=en -~----------~----~----~----~------~----~------~--~---
