[opencms-dev] Firefox 3.5 script errors in Explorer view -- fixed version of tree.js
shiys at langhua.cn
Thu Jul 9 13:05:51 CEST 2009
Great work! Thanks a lot!
在 2009-07-09四的 11:29 +0200，Christian Steinert写道：
> Dear all, dear Achim
> Explorer tree, to make it work properly with Firefox 3.5.
> The updated file is attached. It should work at least with Opencms 7.0.x
> and 7.5.x.
> You have to upload it to the folder /system/workplace/resources/commons/
> of your opencms installation and then publish it.
> As noted before, I won't have time to look into other Firefox 3.5
> issues. If further bugs come up for tree.js, I would be willing to take
> another look but if there are still problems in other areas, then it
> would be great, if others could also help to fix them. Alkacon is doing
> a lot, but they can't be expected to always do everything by themselves.
> Things that were changed (none of these changes should negatively affect
> other browsers):
> - The tree does not seem to hang/freeze anymore after a rewrite of
> function getNodeIdByName. Before, the logic had been a bit complicated
> and the conditions for terminating this functions, were in my opinion a
> bit dubious before when not finding a tree node.
> - All access to tree nodes (previously done directly through direct
> array access in the form tree.nodes[ nodeId ]) is now handled by a new
> function getNodeById.
> It seems that at least part of the tree problems in Firefox was, that
> tree nodes are usually using numbers as IDs but sometimes, strings that
> contain numbers are used for accessing them. Maybe, Firefox 3.5 is a
> little stricter in such situations, as soon as the JIT is enabled, since
> The new getNodeById function will sanitize input and find tree nodes
> anyway, even if the node index was passed in as a String and not a
> number. All future read access of tree nodes should also be done through
> this function.
> - lots of cleanup:
> * sanitized all checks for null/undefined - if(foo != null) was changed
> to if(foo); if(foo==null) was changed to if(!foo), both of which are
> much safer
> * changed string concatenation so that "+" is at the end of the previous
> automatically insert semicolons in various situations, and therefore, it
> matters a lot, where line breaks are)
> * where possible, changed comparisons to use === instead of == which is
> faster and safer. Note that this is not alway possible, because node ids
> can sometimes be numbers and sometimes be strings
> * added various missing variable declarations where they had been
> which can lead to nasty bugs)
> * re-ordered functions so that they are always defined before their
> first caller, as advised by jslint.
> * fixed all remaining jslint errors
> Comments are welcome.
> Kind Regards
> This mail is sent to you from the opencms-dev mailing list
> To change your list options, or to unsubscribe from the list, please visit
More information about the opencms-dev