Java Script работает в IE но ни в какую в Mozilla
От: TVORISHKA  
Дата: 30.09.10 17:32
Оценка:
Помогите разобраться, фунционал работает в IE, Опере, а в Мозиле выдает ошибку "TableA is not defined"
HTML:
<table id="TableA" border="1" cellspacing="0" cellpadding="0" width="100%"><Br />
<tr>
<td OnClick="ClicTableA(0,TableA);ShowTri('q1tri', 0, 4)" >
<b>номер</b>
<img src="images\down.gif" id="q1tri0" style="{display : none}" />
<img src="images\up.gif" id="q1triup0" style="{display : none}" /></td>
<td OnClick="ClicTableA(1,TableA);ShowTri('q1tri', 1, 4)" >
<b>Наименование</b>
<img src="images\down.gif" id="q1tri1" style="{display : none}" />
<img src="images\up.gif" id="q1triup1" style="{display : none}" /></td>
<td OnClick="ClicTableA(2,TableA);ShowTri('q1tri', 2, 4)" >
<b>Количество</b>
<img src="images\down.gif" id="q1tri2" style="{display : none}" />
<img src="images\up.gif" id="q1triup2" style="{display : none}" /></td>
<td OnClick="ClicTableA(3,TableA);ShowTri('q1tri', 3, 4)" >
<b>Цена</b>
<img src="images\down.gif" id="q1tri3" style="{display : none}" />
<img src="images\up.gif" id="q1triup3" style="{display : none}" /></td>
</tr>
JS:
var flag;
flag=true;
var savednum = -1;
var savedname = "";
function ShowTri(parName, parNum, cols)
{
var oname;
if (savednum == parNum){
oname=parName+"up";
var idWhat2 = document.getElementbyId(parName+parNum);
idWhat2.style.display = "none"
}
else {
oname = parName;
if (savednum != -1){
var idWhat3 = document.getElementById(parName+"up"+savednum);
idWhat3.style.display = "none";}
};

if (savedname==oname) {
if (oname == parName)
{
var idWhat3 = document.getElementById(oname+savednum);
idWhat3.style.display = "none";
oname = parName+"up";
} else
{
var idWhat3 = document.getElementById(oname+savednum);
idWhat3.style.display = "none";
oname = parName;
}
}

var idWhat = document.getElementById(oname+parNum);

idWhat.style.display = "";
for (i=0;i<cols;i++)
if (i!= parNum)
{
var idOther = document.getElementById(oname+i);
idOther.style.display = "none";
}
savednum = parNum;
savedname = oname;
}

function ClicTableA(col,q ){
var nn,obj;
var a=q.id;
obj=document.getElementById(a);
nn=obj.rows.length;
flag=!flag;
for(j=nn;j>1;j--)
for(i=1;i<j-1;i++){
pred=obj.rows(i).cells(col).innerText;
next=obj.rows(i+1).cells(col).innerText;
(flag) ? bool=pred>next : bool=pred<next;
if(bool)for(k=0;k<obj.rows(i).cells.length;k++){
X=obj.rows(i+1).cells(k).innerText;
obj.rows(i+1).cells(k).innerText=obj.rows(i).cells(k).innerText;
obj.rows(i).cells(k).innerText=X;}}
}
Re: Java Script работает в IE но ни в какую в Mozilla
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 30.09.10 17:40
Оценка:
Здравствуйте, TVORISHKA, Вы писали:

TVO>Помогите разобраться, фунционал работает в IE, Опере, а в Мозиле выдает ошибку "TableA is not defined"


Строку 'TableA' надо брать в кавычки:

<td OnClick="ClicTableA(0,'TableA');ShowTri('q1tri', 0, 4)" >
                          ^      ^
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[2]: Java Script работает в IE но ни в какую в Mozilla
От: TVORISHKA  
Дата: 30.09.10 19:38
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Здравствуйте, TVORISHKA, Вы писали:


TVO>>Помогите разобраться, фунционал работает в IE, Опере, а в Мозиле выдает ошибку "TableA is not defined"


CF>Строку 'TableA' надо брать в кавычки:


CF>
CF><td OnClick="ClicTableA(0,'TableA');ShowTri('q1tri', 0, 4)" >
CF>                          ^      ^


Но тогда это получается уже строковая переменная, а мне нужен объект

var a=q.id;
obj=document.getElementById(a);
nn=obj.rows.length;
Re[2]: Java Script работает в IE но ни в какую в Mozilla
От: TVORISHKA  
Дата: 30.09.10 19:47
Оценка:
Если взять в кавычки Mozilla и IE громогласно кричат "obj is null"
Re[3]: Java Script работает в IE но ни в какую в Mozilla
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 30.09.10 21:21
Оценка: +1
Здравствуйте, TVORISHKA, Вы писали:

TVO>Но тогда это получается уже строковая переменная, а мне нужен объект


Если нужен объект, то его нужно инициализировать. В коде такой переменной нет. Естественно, что на неё ругань идёт.
TableA = document.getElementById('TableA');
если я правильно понял, что должна обозначать эта переменная.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[3]: Java Script работает в IE но ни в какую в Mozilla
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 30.09.10 21:24
Оценка:
Здравствуйте, TVORISHKA, Вы писали:

TVO>var a=q.id;

TVO>obj=document.getElementById(a);
TVO>nn=obj.rows.length;

И вообще, непонятна логика кода. На вход поступает объект, дальше берётся его идентификатор, после чего ищется объект с этим идентификатором. Так мы сам этот объект и найдём. В чём смысл? Не проще было написать obj=q ?
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[4]: Java Script работает в IE но ни в какую в Mozilla
От: Аноним  
Дата: 01.10.10 16:05
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Здравствуйте, TVORISHKA, Вы писали:


TVO>>Но тогда это получается уже строковая переменная, а мне нужен объект


CF>Если нужен объект, то его нужно инициализировать. В коде такой переменной нет. Естественно, что на неё ругань идёт.

CF>
TableA = document.getElementById('TableA');
если я правильно понял, что должна обозначать эта переменная.


У меня это делает xslt преобразование (один xslt на много файлов), в xml файлах содержатся разные табличные структуры, и в эту функцию ClicTableA я каждый раз передаю разные значения (TableA, TableB....). Таким образом если надо отсортировать таблицу TableA я и передаю её как параметр.
В IE всё работает, проверяла отладчиком, всё ок.
В коде действительно оплошность, исправила.

В mozilla не могу ни как понять что не так (
Re[5]: Java Script работает в IE но ни в какую в Mozilla
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 01.10.10 17:03
Оценка:
Здравствуйте, Аноним, Вы писали:

А>У меня это делает xslt преобразование (один xslt на много файлов), в xml файлах содержатся разные табличные структуры, и в эту функцию ClicTableA я каждый раз передаю разные значения (TableA, TableB....). Таким образом если надо отсортировать таблицу TableA я и передаю её как параметр.

А>В IE всё работает, проверяла отладчиком, всё ок.
А>В коде действительно оплошность, исправила.

А>В mozilla не могу ни как понять что не так (


Тогда сложно сказать, в чём может быть проблема. Сама по себе работоспособность кода в IE ещё не означает, что код правильный. IE очень любит делать всякие нестандартизованные вещи, которые не срабатывают в нормальных браузерах. В Мозилле есть довольно неплохой отладчик (FireBug, кажется), можно попробовать с его помощью погулять по коду, посмотреть, чему равны значения переменных, инициализированы ли нужные объекты, и если нет, то почему. На худой конец понавтыкать в разные места alert'ов с отладочной информацией. Боюсь, что чем-то более конкретным помочь не смогу, слишком мало информации, да и с xslt я не знаком.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[6]: Java Script работает в IE но ни в какую в Mozilla
От: Аноним  
Дата: 01.10.10 17:38
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

CF>Здравствуйте, Аноним, Вы писали:


А>>У меня это делает xslt преобразование (один xslt на много файлов), в xml файлах содержатся разные табличные структуры, и в эту функцию ClicTableA я каждый раз передаю разные значения (TableA, TableB....). Таким образом если надо отсортировать таблицу TableA я и передаю её как параметр.

А>>В IE всё работает, проверяла отладчиком, всё ок.
А>>В коде действительно оплошность, исправила.

А>>В mozilla не могу ни как понять что не так (


CF>Тогда сложно сказать, в чём может быть проблема. Сама по себе работоспособность кода в IE ещё не означает, что код правильный. IE очень любит делать всякие нестандартизованные вещи, которые не срабатывают в нормальных браузерах. В Мозилле есть довольно неплохой отладчик (FireBug, кажется), можно попробовать с его помощью погулять по коду, посмотреть, чему равны значения переменных, инициализированы ли нужные объекты, и если нет, то почему. На худой конец понавтыкать в разные места alert'ов с отладочной информацией. Боюсь, что чем-то более конкретным помочь не смогу, слишком мало информации, да и с xslt я не знаком.


Спасибо за информацию, попробую FireBug-ом,

Ещё вопрос!!!
Есть форма поиска по номеру, в результате js-ом динамически добавляются строки в таблицу, но при повторном поиске мне нужно чтобы таблица очищалась (без перезагрузки конечно), для IE работает deleteRow() в Mozill-e же требуется обязательно указывать индекс строки, но в таблице может быть и несколько строк подскажите как можно очищать таблицу !??!? Возможно какой то другой способ есть?
Re[7]: Java Script работает в IE но ни в какую в Mozilla
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 01.10.10 19:25
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Ещё вопрос!!!

А>Есть форма поиска по номеру, в результате js-ом динамически добавляются строки в таблицу, но при повторном поиске мне нужно чтобы таблица очищалась (без перезагрузки конечно), для IE работает deleteRow() в Mozill-e же требуется обязательно указывать индекс строки, но в таблице может быть и несколько строк подскажите как можно очищать таблицу !??!? Возможно какой то другой способ есть?

Не совсем понял, а в IE вызов deleteRow() без параметров очищает всю таблицу что ли?
Если требуется очистить всю таблицу, способов может быть много. Например, вызов deleteRow(0) в цикле для удаления всех строк друг за дружкой (или deleteRow(1), если нужно оставить шапку). Можно просто уничтожить таблицу, сконструировав её с нуля прямой манипуляцией с DOM-деревом, или же воткнуть "минимальное" HTML-описание в виде строки в поле innerHTML.
Почему же, ё-моё, ты нигде не пишешь «ё»?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.