Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Странности с getElement (https://javascript.ru/forum/events/21308-strannosti-s-getelement.html)

Aneksis 04.09.2011 21:30

Странности с getElement
 
Всем ку!
Есть схемка - файл подключается на странице в следующем виде и должен выдавать картинку и ссылку для обновления этой картинки.
<script src="http://какой-то сайт/путь к скрипту/script.js" type=text/javascript></script>


На сайте, у которого запрашивают script.js выдается такой код в браузер
function reload_image()
{
  document.getElementById('myimage').src='http://какой-то сайт/путь к картинке';
}
document.write("<img src='http://какой-то сайт/путь к картинке' id=myimage><a href='javascript:reload_image()'>");

Работает все очень странно. В Google Chrome норм.
В Opere только на двойной клик)) В IE и в огнелисе нет. В сафари только один раз))).

Где перемудрил?

dmitriymar 04.09.2011 22:26

как насчёт того чтоб теги закрыть для начала?

Aneksis 04.09.2011 22:32

Цитата:

Сообщение от dmitriymar (Сообщение 124816)
как насчёт того чтоб теги закрыть для начала?

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

document.write("<img src='http://какой-то сайт/путь к картинке' id=myimage><a href='javascript:reload_image()'>обновить</a>");

dmitriymar 04.09.2011 22:57

<img src='http://какой-то сайт/путь к картинке' id='myimage'> .

Aneksis 04.09.2011 23:14

Цитата:

Сообщение от dmitriymar (Сообщение 124818)
<img src='http://какой-то сайт/путь к картинке' id='myimage'> .

Ребят, а серьезные ответы будут?

dmitriymar 04.09.2011 23:37

куда еще серьёзней?кто здесь шутит? если myimage не переменная то она пишется в кавычках.если это переменная то в document.write строка должна иметь вид-
document.write("<img src='http://какой-то сайт/путь к картинке' id="+myimage+"><a href='javascript:reload_image()'>");

и соответственно в
document.getElementById('myimage').src='http://какой-то сайт/путь к картинке';
должна быть без кавычек.
да и document.write работает до того как документ загрузится.
Итого 3 строки и столько моментов где может быть ошибка-телепатов нет . да и с тегом img вопрос-если документ ХHtml-90%, то он не закрыт
И ещё одно если браузер старый то доступ к адресу изображения по ид может выделыватся-через нейм

Aneksis 04.09.2011 23:47

По порядку.
1. myimage это id картинки а не переменная.
2. То, что document.write срабатывает до загрузки документа, это ничего не меняет и не влияет на срабатывание функции после клика пользователя.

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

dmitriymar 04.09.2011 23:50

консоль открой в браузере и посмотри ошибка будет myimage not defened,а то что в некоторых срабатывает-бразуеры могут ошибки подобные исправлять
document.write("<div id=myimage onclick='as()'>Нажми</div>");
function as()
{
alert(document.getElementById('myimage').id)
}

Aneksis 04.09.2011 23:57

Цитата:

Сообщение от dmitriymar (Сообщение 124827)
консоль открой в браузере и посмотри ошибка будет myimage not defened,а то что в некоторых срабатывает-бразуеры могут ошибки подобные исправлять
document.write("<div id=myimage onclick="alert(document.getElementById('myimage').id)>Нажми</div>");

В исходном коде все кавычки на месте. Повторюсь не срабатывает в IE и FireFox.

dmitriymar 05.09.2011 00:02

вместо document.write использовать innerHTML если всё на месте то причина в нём или в незакрытом теге img. а так ты выложил код в каждой строке какого по ошибке и утверждаешь что в исходном всё норм. дистанционно догадаться что код здесь и у тебя это разный код-невозможно


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