Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Снова innerHTML / 25 сообщений из 54, страница 1 из 3
14.01.2008, 01:07
    #35058705
Eugenius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
Доброго времени суток.
То ли туплю с недосыпу, то ли просто не в курсе чего-нибудь:

при записи в innerHTML элемента TD, в котором до этого находится таблица, другой таблицы - всё содержимое TD пропадает! Сам записываемый HTML проверил, он корректный.
В чем грабли?
Код: plaintext
1.
var ParentObject = document.getElementById("DataRepeaterBlock");
            ParentObject.innerHTML = data;
...
Рейтинг: 0 / 0
14.01.2008, 13:44
    #35059791
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
Eugeniusвсё содержимое TD пропадает!
Это и не удивительно. Ведь ты его заменяеш на другое содержимое.
Сделай например так
Код: plaintext
ParentObject.innerHTML = ParentObject.innerHTML + data
...
Рейтинг: 0 / 0
14.01.2008, 22:37
    #35061175
Eugenius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
Так мне и нужно заменить его. Но то, что я туда помещаю - не отображается, хотя отображается, если поместить в отдельный файл и открыть в браузере
...
Рейтинг: 0 / 0
14.01.2008, 23:07
    #35061197
GWhite
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
Посмотрите исходный код страницы после замены....наверняка где-то тэг забыли :)
Или давайте код в студию, а так сложно что-либо посоветовать....
...
Рейтинг: 0 / 0
15.01.2008, 07:36
    #35061353
Eugenius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
Так вроде не забыл я тэгов (скорее уж что-то тут лишнее, не могу понять)
Вот это пытаюсь записать в innerHTML:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<TABLE id='ObjectsDataTable' cellspacing='0' cellpadding='0' frame='void' rules='none' style='table-layout:fixed;font-family:Tahoma; font-size:8pt;width:100%;border-collapse:collapse;'>
<tr class='TableHeader'>
<td class='ColumnCaption' style='text-align:center;white-space:nowrap;width:80px;'><a title="Сортировать по колонке" href="javascript:PostBackForm(document.forms[0],'SORTING_ORDER','ID')">№</a></td>
<td class='ColumnCaption' style='text-align:center;white-space:nowrap;width:68%;'><a title="Сортировать по колонке" href="javascript:PostBackForm(document.forms[0],'SORTING_ORDER','Description')">Наименование</a></td>
<td class='ColumnCaption' style='text-align:center;white-space:nowrap;width:32%;'><a title="Сортировать по колонке" href="javascript:PostBackForm(document.forms[0],'SORTING_ORDER','StateDescription')">Состояние</a></td>

</tr>
<tr id='_2775' valign='top' class='TableRow' onclick='javascript:setRowStyle(this,true,true,false);setCurrentItemId(2775)'
onmouseover='javascript:setRowStyle(this,false,true,false)' onmouseout='javascript:setRowStyle(this,false,false,false)'>
<td class='TableColumn' style='text-align:center;padding-left:4px;white-space:nowrap;'>X- 00002775 </td>
<td class='TableColumn' style='padding-left:4px;'>Стул Престиж  16                                    </td>
<td class='TableColumn' style='padding-left:4px;'>В эксплуатации</td>

</tr>
<tr class='TableHeader'>
<td colspan='3' class='ColumnCaption' style='text-align:left'>Найдено записей:  1 </td>

</tr>
</TABLE>

А код на JS - он весь есть выше.
...
Рейтинг: 0 / 0
15.01.2008, 08:53
    #35061443
GWhite
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
Ну и в результате-то код вставляется? Просмотр исходного кода результата в порядке или нет?
...
Рейтинг: 0 / 0
15.01.2008, 08:57
    #35061450
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
Действительно. Eugenius , после "замены" попробуй прочитать значение еще раз и выведи алертом. Что там будет?
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
15.01.2008, 09:57
    #35061583
Ghirik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
Вроде так работает.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-us">
<title>Title block</title>
<script type="text/javascript">
<!--
function innerTd() {
	document.getElementById('td0').innerHTML = document.getElementById('div').innerHTML;
}
//-->
</script>
</head>
<body>
<table border="1" width="100%" id="table1">
    <tr>
        <td id="td0"> </td>
    </tr>
</table>
<div id="div">
<TABLE id='table2' cellspacing='0' cellpadding='0' frame='void' rules='none' style='table-layout:fixed;font-family:Tahoma; font-size:8pt;width:100%;border-collapse:collapse;'>
<tr class='TableHeader'>
<td class='ColumnCaption' style='text-align:center;white-space:nowrap;width:80px;'><a title="Сортировать по колонке" href="javascript:PostBackForm(document.forms[0],'SORTING_ORDER','ID')">№</a></td>
<td class='ColumnCaption' style='text-align:center;white-space:nowrap;width:68%;'><a title="Сортировать по колонке" href="javascript:PostBackForm(document.forms[0],'SORTING_ORDER','Description')">Наименование</a></td>
<td class='ColumnCaption' style='text-align:center;white-space:nowrap;width:32%;'><a title="Сортировать по колонке" href="javascript:PostBackForm(document.forms[0],'SORTING_ORDER','StateDescription')">Состояние</a></td>
</tr>
<tr id='_2775' valign='top' class='TableRow' onclick='javascript:setRowStyle(this,true,true,false);setCurrentItemId(2775)'>
<td class='TableColumn' style='text-align:center;padding-left:4px;white-space:nowrap;'>X- 00002775 </td>
<td class='TableColumn' style='padding-left:4px;'>Стул Престиж  16                                    </td>
<td class='TableColumn' style='padding-left:4px;'>В эксплуатации</td>
</tr>
<tr class='TableHeader'>
<td colspan='3' class='ColumnCaption' style='text-align:left'>Найдено записей:  1 </td>
</tr>
</TABLE>
</div>
<p><input type="button" value="tdInnerHtml" onclick="innerTd()"></p>
</body>
</html>
...
Рейтинг: 0 / 0
15.01.2008, 10:30
    #35061703
Eugenius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
Вывел алертом - дейсвтельно, пусто
...
Рейтинг: 0 / 0
15.01.2008, 10:49
    #35061768
Eugenius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
GhirikВроде так работает.

Код: plaintext
1.
2.
3.
4.
5.
<script type="text/javascript">
<!--
function innerTd() {
	document.getElementById('td0').innerHTML = document.getElementById('div').innerHTML;
}

Хотелось бы еще понять, что это всё значит:-) Не записывать же сначала весь этот html сначала в div, и уже оттуда в ячейку верхней таблицы
...
Рейтинг: 0 / 0
15.01.2008, 12:30
    #35062204
Ghirik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
авторХотелось бы еще понять, что это всё значит:-) Не записывать же сначала весь этот html сначала в div, и уже оттуда в ячейку верхней таблицы

Ну, как бы, контейнер по любому нужен. Метод innerHTML применяется к контейнерам. Есть, наверное, ещё вариант, только вот желание, вряд ли есть.... Можно ещё правильно записать ваш html-код, который data. Типа, закрыть обратными слэшами всякие левые символы. Но ИМХО, это с родни маразму...
...
Рейтинг: 0 / 0
15.01.2008, 12:44
    #35062292
Eugenius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
Поместил таблицу в <div>, бесполезно.
Заметил еще кое-что:
если убрать атрибут style у записываемой таблицы - она начинает отображаться.
Что за ерунда, люди?
...
Рейтинг: 0 / 0
15.01.2008, 12:46
    #35062300
Ghirik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
Всю страницу то нельзя выложить? От <html> до </html>
...
Рейтинг: 0 / 0
15.01.2008, 12:48
    #35062312
Ghirik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
Вот так, через ж..., то же работает...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-us">
<title>Title block</title>
<script type="text/javascript">
<!--

var htmlTab = "<TABLE id='table2' cellspacing='0' cellpadding='0' frame='void' rules='none' style='table-layout:fixed;font-family:Tahoma; font-size:8pt;width:100%;border-collapse:collapse;'><tr class='TableHeader'><td class='ColumnCaption' style='text-align:center;white-space:nowrap;width:80px;'><a title=\"Сортировать по колонке\" href=\"javascript:PostBackForm(document.forms[ 0 ],'SORTING_ORDER','ID')\">№</a></td><td class='ColumnCaption' style='text-align:center;white-space:nowrap;width:68%;'><a title=\"Сортировать по колонке\" href=\"javascript:PostBackForm(document.forms[ 0 ],'SORTING_ORDER','Description')\">Наименование</a></td><td class='ColumnCaption' style='text-align:center;white-space:nowrap;width:32%;'><a title=\"Сортировать по колонке\" href=\"javascript:PostBackForm(document.forms[ 0 ],'SORTING_ORDER','StateDescription')\">Состояние</a></td></tr><tr id='_2775' valign='top' class='TableRow' onclick='javascript:setRowStyle(this,true,true,false);setCurrentItemId(2775)'><td class='TableColumn' style='text-align:center;padding-left:4px;white-space:nowrap;'>X-00002775</td><td class='TableColumn' style='padding-left:4px;'>Стул Престиж 16 </td><td class='TableColumn' style='padding-left:4px;'>В эксплуатации</td></tr><tr class='TableHeader'><td colspan='3' class='ColumnCaption' style='text-align:left'>Найдено записей: 1</td></tr></TABLE>";

function innerTd() {
	document.getElementById('td0').innerHTML = htmlTab;
}
//-->
</script>
</head>
<body>
<table border="1" width="100%" id="table1">
    <tr>
        <td id="td0"> </td>
    </tr>
</table>
<div id="div">
</div>
<p><input type="button" value="tdInnerHtml" onclick="innerTd()"></p>
</body>
</html>
...
Рейтинг: 0 / 0
15.01.2008, 12:56
    #35062345
Eugenius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
GhirikВсю страницу то нельзя выложить? От <html> до </html>
Страница - здоровенная . И при динамическом обновлении innerHTML ты всё равно увидишь только изначальный вариант, так ведь?
...
Рейтинг: 0 / 0
15.01.2008, 12:59
    #35062364
Ghirik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
авторПоместил таблицу в <div>, бесполезно.

Ну как бесполезно?! Я же вам только что привел работающий код. Смотрите, что у вас не так..
...
Рейтинг: 0 / 0
15.01.2008, 13:02
    #35062375
Eugenius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
GhirikВот так, через ж..., то же работает...

Код: plaintext
1.
2.
3.
<script type="text/javascript">
<!--

var htmlTab = "<TABLE id='table2' 

В том-то и дело, что у меня не работает почти такая же конструкция:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
function getCallBackResult(response, context) {
    var RESPONSE = response.split(":");
    switch (RESPONSE[ 0 ]) {
        case "{message}":
            alert(RESPONSE[ 1 ]);
            return;
        case "NEW_OBJECTS_CHECK":
            var parameters = (RESPONSE[ 1 ] == "TRUE") ? "choose" : "skip";
            menuCommand("new", parameters);
            return;
        case "CHECK_FOR_UPDATES":
            if (RESPONSE[ 1 ].toUpperCase() != "FALSE") {
                var ParentObj = document.getElementById("MainDataRepeater");
                ParentObj.innerHTML = RESPONSE[ 1 ];
                window.alert(ParentObj.innerHTML);
            }
            return;
        default:
            return;
    }   
}
...
Рейтинг: 0 / 0
15.01.2008, 13:03
    #35062382
Ghirik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
Я всем всегда рекомендую ныкладывать подготовленную проблему. Т.е. Вы берете и начинаете удалять по очереди все лишние элементы с вашей здоровенной страницы, но так, чтобы проблема сохранилась. При таком методе, обычно до поста не доходит. Обычно человек сам находит косяк.
...
Рейтинг: 0 / 0
15.01.2008, 13:06
    #35062394
Ghirik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
Ну блин, нельзя так играться с заглавными буквами в JavaScript.
...
Рейтинг: 0 / 0
15.01.2008, 13:08
    #35062405
Ghirik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
Вы каким браузером смотрите?
...
Рейтинг: 0 / 0
15.01.2008, 13:11
    #35062416
Eugenius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
GhirikНу блин, нельзя так играться с заглавными буквами в JavaScript.
Что ж тут такого-то?

авторЯ всем всегда рекомендую ныкладывать подготовленную проблему. Т.е. Вы берете и начинаете удалять по очереди все лишние элементы с вашей здоровенной страницы, но так, чтобы проблема сохранилась. При таком методе, обычно до поста не доходит. Обычно человек сам находит косяк.
Именно это я проделываю с тех пор, как натолкнулся на проблему:-)
Просто, с перерывами. Поэтому пока нашел только проблему атрибута style
ИМХО, при таком подходе есть шанс фиг-знает-сколько-времени искать давно кем-то найденное решение:-)
...
Рейтинг: 0 / 0
15.01.2008, 13:12
    #35062422
Eugenius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
GhirikВы каким браузером смотрите?
Вот это косяк с моей стороны, что не сказал: только IE, всё делается под него исключительно
...
Рейтинг: 0 / 0
15.01.2008, 13:14
    #35062440
Ghirik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
Как раз у IE бывают глюки, связанные с регистром символов. Обзовите ваш RESPONSE например RESPONSE_1.
...
Рейтинг: 0 / 0
15.01.2008, 13:17
    #35062448
Ghirik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
У IE бывают конфликты глобальных и локальных переменных, если они имеют одинаковые названия.
...
Рейтинг: 0 / 0
15.01.2008, 13:34
    #35062512
Eugenius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова innerHTML
Ок, переменную переназвал (хотя такой же глобальной у меня нет).
Но это не непосредственная причина беды.
Помогите, пожалуйста, кто-нибудь, разобрать тот HTML, который я в первый раз опубликовал!
Что в нем может мешать нормальному отображению???!!!
И почему тогда в отдельном файле с отображением этого же HTML всё в порядке?
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Снова innerHTML / 25 сообщений из 54, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]