Opened 8 years ago

Closed 8 years ago

Last modified 7 years ago

#571 closed defect (fixed)

IframeIO does not work with Opera 8.52

Reported by: ajt@… Owned by: alex
Priority: high Milestone:
Component: Core Version: 0.2
Keywords: opera iframeio Cc:
Blocked by: Blocking:

Description

Broken Test trunk/tests/io/test_IframeIO.html

DEBUG: DEPRECATED: dojo.xml.domUtil is deprecated, use dojo.dom instead

DEBUG: DEPRECATED: dojo.xml.htmlUtil is deprecated, use dojo.html instead

DEBUG: DEPRECATED: dojo.graphics.htmlEffects is deprecated, use dojo.fx.html instead

DEBUG: no tag handler registed for type: dojo:application/x-shockwave-flash

DEBUG: no tag handler registed for type: dojo:text/javascript

DEBUG: no tag handler registed for type: dojo:text

DEBUG: no tag handler registed for type: dojo:password

DEBUG: no tag handler registed for type: dojo:submit

DEBUG: no tag handler registed for type: dojo:text/javascript

DEBUG: no tag handler registed for type: dojo:application/x-shockwave-flash

DEBUG: no tag handler registed for type: dojo:hidden

DEBUG: no tag handler registed for type: dojo:text

DEBUG: no tag handler registed for type: dojo:password

DEBUG: no tag handler registed for type: dojo:text/javascript

DEBUG: no tag handler registed for type: dojo:text/javascript

DEBUG: no tag handler registed for type: dojo:text/javascript

DEBUG: no tag handler registed for type: dojo:text/javascript

DEBUG: [TypeError: Statement on line 5717: Could not convert undefined or null to object Backtrace: Line 5717 of linked script http://jinx/tob/www/js/dojo.js idoc.location.replace(src); Line 6255 of linked script http://jinx/tob/www/js/dojo.js dojo.io.setIFrameSrc(_589, turi, true); Line 6327 of linked script http://jinx/tob/www/js/dojo.js this.iframe = dojo.io.createIFrame(this.iframeName, "dojo.io.IframeTransport.iframeOnload();"); Line 6378 of linked script http://jinx/tob/www/js/dojo.js dojo.io.IframeTransport.setUpIframe(); Line 263 of linked script http://jinx/tob/www/js/dojo.js mll[x](); Line 290 of linked script http://jinx/tob/www/js/dojo.js dojo.hostenv.loaded(); Line 605 of linked script http://jinx/tob/www/js/dojo.js dojo.hostenv.modulesLoaded(); Line 596 of linked script http://jinx/tob/www/js/dojo.js fp.apply(_76, arguments); At unknown location [statement source code not available] ]

DEBUG: setIFrameSrc: [Error: name: TypeError message: Statement on line 5717: Could not convert undefined or null to object Backtrace: Line 5717 of linked script http://jinx/tob/www/js/dojo.js idoc.location.replace(src); Line 6255 of linked script http://jinx/tob/www/js/dojo.js dojo.io.setIFrameSrc(_589, turi, true); Line 6327 of linked script http://jinx/tob/www/js/dojo.js this.iframe = dojo.io.createIFrame(this.iframeName, "dojo.io.IframeTransport.iframeOnload();"); Line 6378 of linked script http://jinx/tob/www/js/dojo.js dojo.io.IframeTransport.setUpIframe(); Line 263 of linked script http://jinx/tob/www/js/dojo.js mll[x](); Line 290 of linked script http://jinx/tob/www/js/dojo.js dojo.hostenv.loaded(); Line 605 of linked script http://jinx/tob/www/js/dojo.js dojo.hostenv.modulesLoaded(); Line 596 of linked script http://jinx/tob/www/js/dojo.js fp.apply(_76, arguments); At unknown location [statement source code not available] ]

Change History (5)

comment:1 Changed 8 years ago by anonymous

  • Component changed from General to Core

comment:2 Changed 8 years ago by alex

  • Owner changed from anonymous to alex
  • Status changed from new to assigned

comment:3 Changed 8 years ago by jburke

I tried to fix this today, but I didn't quite get it. I have to go now and probably won't be back online for a while, but here is what I found:

In io.js, dojo.io.setIFrameSrc(), in the "Fun with DOM 0 incompatibilities part", there was no r.opera. I added a
r.opera after r.moz

That wasn't enough. Apparently the dom node is not full initialized, so that when we try to grab the contentWindow, it is still null. However, if I put in alerts then it was non-null.

I then tried changed the last if statement in IframeIO.js, dojo.io.createIFrame() to this:

	if(!r.ie){
		if(r.opera){
			setTimeout(function(){
				dojo.io.setIFrameSrc(cframe, turi, true);
				cframe.onload = new Function(onloadstr);
			}, 100);
		}else{
			dojo.io.setIFrameSrc(cframe, turi, true);
			cframe.onload = new Function(onloadstr);
		}
	}

That didn't get the same error, but I got dojo.io.bind() error callback. The error was not very informative. So that's all I could find.

Note that I really did have the test_IframeIO.html page hooked up correctly on a web server to call a upload.cgi (it was working with Firefox).

comment:4 Changed 8 years ago by alex

  • Resolution set to fixed
  • Status changed from assigned to closed

fixed in [3920]

comment:5 Changed 7 years ago by anonymous

  • Milestone 0.3release deleted

Milestone 0.3release deleted

Note: See TracTickets for help on using tickets.