[richfaces-issues] [JBoss JIRA] (RF-12860) AccordionItem.js with error cause browser crash

David Lee (JIRA) jira-events at lists.jboss.org
Wed Mar 27 04:42:42 EDT 2013


    [ https://issues.jboss.org/browse/RF-12860?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12763370#comment-12763370 ] 

David Lee commented on RF-12860:
--------------------------------

Hi Jan,

I been tried for your code,
and true...it won't happened.

And I tried to find what's wrong in my code,
I found if I add the following JavaScript it will crash.

But I add these code to your code it's fine.
Still trying to debug.

<script type="text/javascript">

		//<![CDATA[
/*
       * For Map
       * 
       */
      Array.prototype.remove = function(s) {
          for (var i = 0; i < this.length; i++) {
              if (s == this[i])
                  this.splice(i, 1);
          }
      };

      function Map() {
          this.keys = new Array();
          this.data = new Object();

          this.put = function(key, value) {
              if(this.data[key] == null){
                  this.keys.push(key);
              }
              this.data[key] = value;
          };

          this.get = function(key) {
              return this.data[key];
          };

          this.remove = function(key) {
              this.keys.remove(key);
              this.data[key] = null;
          };

          this.each = function(fn){
              if(typeof fn != 'function'){
                  return;
              }
              var len = this.keys.length;
              for(var i=0;i<len;i++){
                  var k = this.keys[i];
                  fn(k,this.data[k],i);
              }
          };

          this.entrys = function() {
              var len = this.keys.length;
              var entrys = new Array(len);
              for (var i = 0; i < len; i++) {
                  entrys[i] = {
                      key : this.keys[i],
                      value : this.data[i]
                  };
              }
              return entrys;
          };

          this.isEmpty = function() {
              return this.keys.length == 0;
          };

          this.size = function(){
              return this.keys.length;
          };

          this.toString = function(){
              var s = "{";
              for(var i=0;i<this.keys.length;i++,s+=','){
                  var k = this.keys[i];
                  s += k+"="+this.data[k];
              }
              s+="}";
              return s;
          };
      }
      
      //]]> 
    </script>
                
> AccordionItem.js with error cause browser crash
> -----------------------------------------------
>
>                 Key: RF-12860
>                 URL: https://issues.jboss.org/browse/RF-12860
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: component-output
>    Affects Versions: 4.3.0.Final
>         Environment: JBOSS7/JSF2/FirefoxESR10 or Chrome25.0.1
>            Reporter: David Lee
>            Assignee: Jan Papousek
>              Labels: javascript, rich:accordionItem
>             Fix For: 4.3.2
>
>
> Put the rich:accordionItem and rich:extendedDataTable on same page,
> and just click on any column for sort.
> The firebug will show an error:
> items[i].__header is not a function
> [Break On This Error] 	
> h -= items[i].__header().outerHeight();
> Looks like accordionItem.js line48 been triggered when sort:
> $(document).one("javascriptServiceComplete", function () {
> item.__fitToHeight(item.getTogglePanel());
> }); 
> And after this happened, my whole thing crashed.
> Now more sortable or click for any action.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the richfaces-issues mailing list