Ticket #718 (defect)

Opened 10 months ago

Last modified 3 months ago

prop:ClientSide OnLoading don't work in Opera

Status: closed (fixed)

Reported by: wojteb Assigned to: xue
Priority: low Milestone: 3.1.2
Component: Prado Framework v3 Version: 3.1
Severity: minor Keywords: opera onLoading
Cc:

In Opera Browser (v 9.23) acive property OnLoading? isn't call

In IE 6.5 AND FF 2 property works

code:

<script type="text/javascript"> function xx(v){

alert(v); }

</script>

<com:TActiveLinkButton Text="Home"> <prop:ClientSide

OnLoading="xx('xx')" OnComplete="alert('yy')"

/>

</com:TActiveLinkButton>

Change History

10/08/2007 01:04:47 PM: Modified by wojteb

prado version form: 2007-september-26

10/10/2007 11:57:11 AM: Modified by intol

You can always use OnPreDispatch?

10/13/2007 02:20:19 PM: Modified by wojteb

OK, but i prefer onLoading because it is "faster". It first send Ajax request.

If I use some code in OnPreDispatch?, this code must be done...

I'm thinking, that for Opera onLoading can be register as onPreDispatch

01/16/2008 03:17:55 PM: Modified by xue

  • milestone set to 3.1.2.

03/04/2008 03:56:14 PM: Modified by maddin

The problem is, there is no Loading-state in Opera's XMLHttpRequest-object fired. In Prototype, there is no check in the respondToReadyState-method, whether all states have been fired. A solution may be that all previous states are fired, when a higher state is reached. I mean something like this:

Add

lastFired = 0;

to Ajax.Request. Add

if( readyState>0 and readyState>(this.lastFired+1) ) {
	for( var i=this.lastFired+1; i<readyState; i++ ) {
		this.respondToReadyState( i );
	}
}
this.lastFired = readyState;

to respondToReadyState-method right at the top.

That should be a workaround, that all states are fired!

04/21/2008 02:49:10 AM: Modified by tof06

  • status changed from new to closed.
  • resolution set to fixed.

This fix in only a workaround. We fire OnLoading? and OnLoaded? in Opera just after onPreDispatch, so, still BEFORE the request is sent.