[ 
https://issues.apache.org/jira/browse/TAP5-1882?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Howard M. Lewis Ship closed TAP5-1882.
--------------------------------------

    Resolution: Duplicate
      Assignee: Howard M. Lewis Ship

Yes, fixed as TAP5-1907.
                
> 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
>            Assignee: Howard M. Lewis Ship
>            Priority: Critical
>              Labels: Ajax,, Inline, js, style, stylesheet
>
> 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

        

Reply via email to