Custom Query (18300 matches)
Results (163 - 165 of 18300)
Ticket | Resolution | Summary | Owner | Reporter |
---|---|---|---|---|
#11544 | duplicate | The Script Defer mechanism in IE for dojo's onload event breaks with flash objects on page | ||
Description |
If you have :
in IE the script defer mechanism breaks because deferred script is parsed before the external JS file has been parsed. This is a timing issue so it doesn't happen every time but happens often enough (and on some machines very regularly) to break Dojo's onLoad event mechanism. The result is that functions attached using addOnLoad() get called before some external js files have been parsed. If the addOnLoad() functions depend on code in those files the page breaks. Based on my discussion with James Burke on the mailing list external JS files should have been parsed before functions attached using addOnLoad() were called. Removing the flash object from the page fixes the issue and dojo's onload is triggered at the correct point. (i.e after the external JS files have been parsed) Happens in both IE 8 and 7.
Steps to reproduce:
Since its a timing issue we run it multiple times in case the issue doesn't show up in one run.
The expected output for all 50 cases should be:
However you will see that some of the runs will log this :
The results will be :
This is a serious issue because it breaks the semantics of dojo's onload event. We discovered this issue in our product when a flash object was included on a page that was using Dojo extensively. |
|||
#12225 | fixed | Problem with xdomain loading, setTimeout and IE | ||
Description |
In one of our pages we were running into an issue with cross domain loaders and IE. I was able to distill the problem down into an easily reproducible case. Place the following markup in a html file <!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js" type="text/javascript"></script> </head> <body> <script type="text/javascript"> dojo.addOnLoad(function() { setTimeout(loadStackContainer, 0); }); function loadStackContainer() { var div = dojo.byId('result'); dojo.require("dijit.layout.StackContainer"); dojo.addOnLoad(function() { if (dijit && dijit.layout && dijit.layout.StackContainer && dijit.layout.StackContainer.prototype) { div.innerHTML = "Stack container loaded properly"; } else { div.innerHTML = "Stack Container wasn't loaded dude!"; } }); } </script> <button type="button" onclick="setTimeout(loadStackContainer, 0);">Click here to load stack container again </button> <div id='result'>Initial</div> </body> </html> Access this page in IE and you will notice that the StackContainer? doesn't get loaded properly. What we are doing here is pretty simple. We have an xdomain version of dojo being used.
This problem goes away if we do two things:
For some reason this is a problem in IE only.
(note that some of you may wonder why I have the setTimeout in the first place. This is just a very distilled version of what we are actually doing on the page and there are other reasons why we need a setTimeout()) Breaks on IE 7/8 |
|||
#8226 | fixed | FilePicker - fix for 'node is null' error | ||
Description |
I'm not sure if this has been attended to already but I couldn't find it on this site so I thought I would post this as a FYI. Problem: I encountered a 'node is null' error with FilePicker?.js. Here's how I produce the error:
Solution: I traced it back to the _removeAfter function of RollingList? which FilePicker? inherits from. The error can be fixed by replacing line 481 in dojox.widget.RollingList?: c.destroyRecursive();
Cheers, youngstuart |