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 ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.