Ajax doesn't work anymore after inserting inline style in IE9
-------------------------------------------------------------
Key: TAP5-1882
URL: https://issues.apache.org/jira/browse/TAP5-1882
Project: Tapestry 5
Issue Type: Bug
Components: tapestry-core
Affects Versions: 5.3.3
Reporter: Matthias Melitzer
Priority: Critical
We're using a progress spinner (http://fgnass.github.com/spin.js/) which
inserts an inline style via JS in our application.
When a ajax response is processed the href attribute of all the stylesheets
gets rebuilt if the agent is IE.
The problematic lines are (beginning line 2042 in tapestry.js:
{code:javascript|title=tapestry.js|borderStyle=solid}
addStylesheets : function(stylesheets) {
if (!stylesheets)
return;
var _ = T5._;
var loaded =
_(document.styleSheets).chain().pluck("href").without("").map(this.rebuildURLIfIE).value();
...
rebuildURLIfIE :
Prototype.Browser.IE ? Tapestry.rebuildURL : T5._.identity,
{code}
In IE8 the empty/missing href in the inline style tag evaluates to an empty
string ("") which is correctly removed by without(""), in IE9 instead it's
evaluated to null.
rebuildURLIfIE evaluates to Tapestry.rebuildURL for IE, when a href equals to
null an exception is thrown as soon as the path parameter is accessed:
{code:javascript|title=tapestry.js|borderStyle=solid}
rebuildURL : function(path) {
if (path.match(/^https?:/)) {
...
{code}
The issue can be easily fixed by adding *without(null)* above line:
{code:javascript|title=tapestry.js|borderStyle=solid}
...
var loaded =
_(document.styleSheets).chain().pluck("href").without("").without(null).map(this.rebuildURLIfIE).value();
...
{code}
In FF the problem would be the same as an empty href in the style tag also
evaluates to null, still the problem doesn't appear as the attribute is only
rebuild for IE.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira