Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   ошибка с innerHTML (https://javascript.ru/forum/misc/1587-oshibka-s-innerhtml.html)

Gekt0r 19.08.2008 13:41

ошибка с innerHTML
 
Всем привет.
У меня возникла проблема. Есть документ, в котором несколько картинок-превьюшек. Требуется вычислить для каждой адрес большой картинки (это я уже сделал), потом "обернуть" код картинки в ссылку с большой картинкой. (изначально есть <img src="preview.jpg">. А надо - <a href="bigImage"><img src="preview.jpg"></a> )

Я думал сделать так:
1. Собрать все картинки по тэгу
2. В цикле для каждой взять ее innerHTML
3. Потом добавить к старому innerHTML ссылку с большой картинкой

В общем все получается, но только когда я пыьаюсь записать в innerHTML новую инфу, выскакивает ошибка "unknown runtime error"
при этом такой код:
var oldHTML = imgList[index].innerHTML;

работает нормально

а такой:
imgList[index].innerHTML = "что-нибудь";


выдает ошибку.
ЗЫ. imgList - массив картинок, полученный так:
var imgList = document.getElementsByTagName('img');

Gekt0r 19.08.2008 13:55

и, кстати, странность.
когда я вывожу innerHTML картинки алертом, выводится просто пустой алерт

Андрей Параничев 19.08.2008 13:57

Gekt0r,
Какой может быть innerHTML (внутреннийHTML) у картинки, если она - одинарный тег?

Gekt0r 19.08.2008 14:02

Хм, действительно)
а как тогда быть? Как обернуть картинку в ссылку?

ZoNT 19.08.2008 16:50

img - это твоя картинка:
var parent = img.parentNode;
var a = parent.replaceChild(document.createElement('a'),img);
a.href = 'www.ru';
a.appendChild(img);

Gekt0r 19.08.2008 17:51

не работает, выдает ошибку:(
Я сделал по-другому. Все картинки в документе обрамлены тегом <p></p>
Я сделал выборку всех тегов <p>, определил, в каких из них заключены картинки, а потом заменил innerHTML, добавив туда ссылку

Однако есть еще вопрос, собственно, зачем я все это делаю. Я хочу, чтоб картинки при клике отображались "красиво", например, как тут: http://www.felix-riesterer.de/main/seiten/js_popup.html
я нашел несколько подобных решений, и для их всех надо, чтоб картинки были внутри ссылок. Так вот. Когда я вставляю ссылку на картинку вручную в редакторе документа, то скрипт отрабатывает нормально, и картинка открывается красиво. Когда же я сделал свою функцию, которая добавляет всем картинкам ссылки, то скрипт с этим не заработал. Не знаете, почему такое может быть?

ZoNT 19.08.2008 17:56

наверное он при загрузке документа пробегается по ссылкам с картинками и вешает на них обработчики (как вариант - я скрипт не смотрел и не хочу).

Gekt0r 19.08.2008 18:01

Цитата:

Сообщение от ZoNT (Сообщение 4749)
наверное он при загрузке документа пробегается по ссылкам с картинками и вешает на них обработчики (как вариант - я скрипт не смотрел и не хочу).

я смотрел, как я понял, именно так он и делает.
А почему может не работать тогда? Ведь моя функция вешает ссылки на картинки...

ZoNT 19.08.2008 18:08

Ну при загрузке документа у тебя же ещё нет ссылок? по чему будет пробегаться этот скрипт и вешать обработчики???

Gekt0r 19.08.2008 18:16

Цитата:

Сообщение от ZoNT (Сообщение 4752)
Ну при загрузке документа у тебя же ещё нет ссылок? по чему будет пробегаться этот скрипт и вешать обработчики???

Гм.. А как тогда можно сделать, чтоб моя функция разместила ссылки до этого скрипта?


Часовой пояс GMT +3, время: 03:50.