LINUX.ORG.RU
ФорумTalks

Опять грейсманки


0

0
"""Только не переносите топик, оно никуда не подходит."""

Значит, есть у меня какой-то элемент, пусть будет DIV. Я хочу добавить внутр него картинку. Делаю что-то типа

my_div.innerHTML += '<img id="sm1" src="emo-button.png">';

Ок, картинка на месте. Но мне этого мало, я хочу, чтобы при клике на картинке выполнялась моя функция. И чтоб я сдох, но не выполняется зараза... Пробовал всё, от прописывания onclick в теге до работы со свойствами элемента.

Причём, если в теге написать onclick="alert('wazap')", то оно работает, но если подставить вместо alert имя моей функции, которую я определяю в userjs, то нифига. Шо делать?

★★
Ответ на: комментарий от anonymous
так это никакой не Development, это улучшайзинг на уровне юзера
troorl ★★
() автор топика
Перенесите в Web-Development или Development, пожалуйста.
Deleted
()
Потому что юзер-скрипты в гризманки выполняются в sandbox'e
Для opera и epiphany, придется делать проверку и определять функцию как обычно, 
а не через unsafeWindow.

У тебя два варианта:

1. // определяем функцию-обработчик 
   unsafeWindow.myclick = function () {
       var a = "proverka";
       alert(a);
   }
  
   div.innerHTML += '<img id="sm1" src="emo-button.png" onclick="myclick()">';


2. более длинный вариант с определением функции-обработчика через addEventListener
sdio ★★★★★
()
Ответ на: комментарий от sdio
угу. погугли. вообще правильно добавлять обработчики через addEventListener. я с этим тоже сталкивался. то есть ты вместо innerHTML должен юзать добавление объектов.
vahvarh ★★★
()
Ответ на: комментарий от vahvarh
Пожалуйста, отвечайте тому кому хотите ответить, а не тому кто ближе.
sdio ★★★★★
()
Ответ на: комментарий от Oceanborn
И что? Использование ЭТОГО в UserScripts - стрельба из пушки по воробьям.
Sikon ★★★
()
Ответ на: комментарий от sdio
Спасибо, первый вариант работает.
troorl ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.