Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.07.2011, 13:02
Аспирант
Отправить личное сообщение для Leax Посмотреть профиль Найти все сообщения от Leax
 
Регистрация: 03.06.2009
Сообщений: 67

повесить событие на кнопку
// добавляем кнопку
var btndiv = document.createElement("div");
var btn = document.createElement('input');
btndiv.id = 'divBtn'; 
btn.type = 'button';
btn.value = 'Go!' ;
btn.onclick = "alert('Test')"; // Не появляется в коде HTML!!!
btndiv.appendChild(btn);
document.body.appendChild(btndiv);

1) не работает событие на добавляемой кнопке (даже в HTML не появляется)
2) не получается добавить кнопку в другое место документа:
tb1=document.getElementsByClassName('br_ser');
tb1.appendChild(btn); // Ошибка!

Ошибка: tb1.appendChild is not a function

Помогите, пожалуйста (

Последний раз редактировалось Leax, 06.07.2011 в 13:07.
Ответить с цитированием
  #2 (permalink)  
Старый 06.07.2011, 13:07
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Не правильно ты, дядя Фёдор, бутерброд ешь...

<body>
<script>
// добавляем кнопку
var btndiv = document.createElement("div");
var btn = document.createElement('input');
btndiv.id = 'divBtn'; 
btn.type = 'button';
btn.value = 'Go!' ;
btn.onclick = function(){alert('Test')};
btndiv.appendChild(btn);
document.body.appendChild(btndiv);
</script>
</body>

Последний раз редактировалось ksa, 06.07.2011 в 13:09.
Ответить с цитированием
  #3 (permalink)  
Старый 06.07.2011, 13:11
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Leax
2) не получается добавить кнопку в другое место документа:
tb1=document.getElementsByClassName('br_ser');tb1.appendChild(btn); // Ошибка!
Потому как
document.getElementsByClassName('br_ser')

возвращает коллекцию элементов, а у коллекции/массива нет метода appendChild()...
Ответить с цитированием
  #4 (permalink)  
Старый 06.07.2011, 13:18
Аспирант
Отправить личное сообщение для Leax Посмотреть профиль Найти все сообщения от Leax
 
Регистрация: 03.06.2009
Сообщений: 67

Спасибо, но в строке
btn.onclick = function(){alert('Test')};


появляется ошибка:
Ошибка: Component is not available

Странно, а здесь на странице пример работает. %
Я код использую в GreaseMonkey
Ответить с цитированием
  #5 (permalink)  
Старый 06.07.2011, 13:20
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Leax
о в строке
btn.onclick = function(){alert('Test')};


появляется ошибка:
Ошибка: Component is not available
В каком браузере?
Я смотрел в ИЕ7 и Опере...
Ответить с цитированием
  #6 (permalink)  
Старый 06.07.2011, 13:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Посмотрел еще в ФФ и Хроме - всё работает без ошибок...

<!DOCTYPE html>
<html>
<head>
<title>test</title>
<style type="text/css">
</style>
<script type="text/javascript">
</script>
</head>
<body>
<script>
// добавляем кнопку
var btndiv = document.createElement("div");
var btn = document.createElement('input');
btndiv.id = 'divBtn'; 
btn.type = 'button';
btn.value = 'Go!' ;
btn.onclick = function(){alert('Test')};
btndiv.appendChild(btn);
document.body.appendChild(btndiv);
</script>
</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 06.07.2011, 13:35
Аспирант
Отправить личное сообщение для Leax Посмотреть профиль Найти все сообщения от Leax
 
Регистрация: 03.06.2009
Сообщений: 67

FF 3.6.16, Greasemonkey 0.9.6
var btndiv = document.createElement("div");
var btn = document.createElement('input');
btndiv.id = 'divBtn'; 
btn.type = 'button';
btn.value = 'Go!' ;
btn.onclick = function() {alert('Test')}; // ругается на эту строку
btndiv.appendChild(btn);
document.body.appendChild(btndiv);

вставил сразу после заголовка скрипта.
Если вышеуказанную строку закомментировать, то кнопка появляется.
Если строка без комментов - ошибка: Component is not available

Самое интересное, что ваш пример на этой странице работает нормально.

Щас с ума сойду ((
Ответить с цитированием
  #8 (permalink)  
Старый 06.07.2011, 13:39
Аспирант
Отправить личное сообщение для Leax Посмотреть профиль Найти все сообщения от Leax
 
Регистрация: 03.06.2009
Сообщений: 67

btn.onclick = "alert('Test')";

а так ошибок не выдает, кнопка появляется, но onClick на ней в коде отсутствует
Ответить с цитированием
  #9 (permalink)  
Старый 06.07.2011, 13:47
Аспирант
Отправить личное сообщение для Leax Посмотреть профиль Найти все сообщения от Leax
 
Регистрация: 03.06.2009
Сообщений: 67

Даже так ошибка появляется та же самая
btn.onclick = function() {};
Ответить с цитированием
  #10 (permalink)  
Старый 06.07.2011, 13:52
Аспирант
Отправить личное сообщение для Leax Посмотреть профиль Найти все сообщения от Leax
 
Регистрация: 03.06.2009
Сообщений: 67

Вобщем не у одного меня такой глюк с Greasemonkey и button.onclick (
В инете нашел простое решение:
btn.setAttribute("onclick", "alert('Test!')");


Заработало!
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как повесить обработчик на событие "вызов функции"? stopkran Общие вопросы Javascript 30 01.01.2011 09:11
событие на динам. элемент (jQery, Ajax, php) kost_ik jQuery 2 06.11.2010 12:16
как повесить на событие функция класса Hugo_O Общие вопросы Javascript 14 06.11.2010 02:09
Повесить событие click (jQuery) на весь документ, кроме нескольких элементов dabutch Events/DOM/Window 2 12.11.2009 19:52
Как повесить событие без редактирования файла? bilbas Общие вопросы Javascript 8 11.09.2009 15:17