JavaScript "INDEX_SIZE_ERR: DOM Exception 1" при выполнении init () для объекта сетки DHTMLx - PullRequest
1 голос
/ 19 декабря 2010

Я использую Joomla!плагин, который использует библиотеку DHTMLxGrid, в частности версию 1.5.У меня проблема при открытии страницы, которая использует эту функциональность DHTMLx Grid, все работает нормально с Firefox, однако, когда я открываю страницу в Chrome (7 и 8), браузер вызывает исключение в строке 60 файла dhtmlxgrid.js, которое срабатываетпутем инициализации сетки.Я включил несколько строк кода, я знаю, что это очень ограниченные данные, но это то, что я смог представить здесь в качестве резюме.Я надеюсь, что кто-то столкнулся с подобной проблемой.У меня ограниченные знания JS, поэтому любая помощь очень ценится.

Если вам нужно больше подробностей, дайте мне знать, и я постараюсь включить больше данных.

Спасибо!

Файл php:

function gridInit(){
    mygrid = new dhtmlXGridObject('gridbox');
    mygrid.setImagePath("http://mydomain.com//administrator/components/com_com/images/dhtmlxGrid/");
    mygrid.setHeader("ID,Start Period,End Period,Price (USD)");
    mygrid.setInitWidths("50,120,120,80");
    mygrid.setColAlign("center,center,center,center");
    mygrid.setColTypes("dyn,dhxCalendarA,dhxCalendarA,edn");
    mygrid.setDateFormat("%d/%m/%Y");
    mygrid.setColSorting("int,date,date,int");

    mygrid.init(); //...hits exception at this point
    //...
}

Файл js:

//dhtmlxgrid.js...
this.hdr = document.createElement("TABLE");
this.hdr.style.border="1px solid gray";
this.hdr.cellSpacing = 0;
this.hdr.cellPadding = 0;
if ((!_isOpera)||(_OperaRv>=8.5))
this.hdr.style.tableLayout = "fixed";
this.hdr.className = "c_hdr".substr(2);
this.hdr.width = "100%";
//...
var hdrRow = this.hdr.insertRow(_isKHTML?2:1); //dhtmlxgrid.js:60 Uncaught Error: INDEX_SIZE_ERR: DOM Exception 1
//...

1 Ответ

1 голос
/ 19 декабря 2010

Ошибка означает, что индекс отрицательный или слишком большой.Строка, на которой происходит ошибка, - это добавление строки в таблицу, но есть тест для _isKHTML ... Я предполагаю, что это тестирование для konqueror, который был прародителем WebKit, на котором основан Chrome.В любом случае, попробуйте выполнить этот тест и сделать это вместо этого:

  var hdrRow = this.hdr.insertRow(1);

Если это решит проблему, то будет использован сбой перехвата браузера, но если вам не нужно поддерживать Linux с KDE,тебе должно быть хорошо без него.

...