повесить событие на кнопку
// добавляем кнопку
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 Помогите, пожалуйста ( |
Не правильно ты, дядя Фёдор, бутерброд ешь...
<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>
|
Цитата:
document.getElementsByClassName('br_ser')
возвращает коллекцию элементов, а у коллекции/массива нет метода appendChild()... |
Спасибо, но в строке
btn.onclick = function(){alert('Test')};
появляется ошибка: Ошибка: Component is not available Странно, а здесь на странице пример работает. % Я код использую в GreaseMonkey |
Цитата:
Я смотрел в ИЕ7 и Опере... |
Посмотрел еще в ФФ и Хроме - всё работает без ошибок...
<!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>
|
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 Самое интересное, что ваш пример на этой странице работает нормально. Щас с ума сойду (( |
btn.onclick = "alert('Test')";
а так ошибок не выдает, кнопка появляется, но onClick на ней в коде отсутствует |
Даже так ошибка появляется та же самая
btn.onclick = function() {};
|
Вобщем не у одного меня такой глюк с Greasemonkey и button.onclick (
В инете нашел простое решение:
btn.setAttribute("onclick", "alert('Test!')");
Заработало! |
Теперь новая проблема:
на кнопку повесил вызов своей функции
btn.setAttribute("onclick", "buildText()");
но при нажатии на эту кнопку появляется ошибка: buildText is not defined Он в принципе понятно почему - эта функция осталась в скрипте Greasemonkey, а в коде Html её нет. Если бы функция была маленькая - я б её в одну строку всунул (как alert в примере), а так даже не знаю что и придумать. Кучу строк лепить в одну тоже напряжно. тем более там в функции кавычки разные встречаются - могут быть проблемы с построением такой длинной строки... |
Чтобы не париться с кавычками - используй addEventListener, может, он глючить не будет. Плюс можно назначить достаточно сложный обработчик.
|
..Простите,не нашел тему.Пишу поэтому сюда.
Сможете ли подсказать,уважаемые гуру,как очищать и удалять перемеенные var от их содержимого ,а также, где можно покопаться и УВИДЕТЬ их содержимое без вызова алерта т.е. где он сидит? |
Цитата:
Вот и думаю как бы это сделать |
Цитата:
Цитата:
А вывести еще в лог можно... http://habrahabr.ru/blogs/javascript/114483/ |
Цитата:
my_button.addEventListener('click', function(){...code...}, false);
И не нужно добавлять на страницу ф-цию... Просто сделайте её в обработчике. |
Цитата:
.. Еще раз,СПАСИБО ОГРОМНОЕ :thanks: ! |
Цитата:
|
| Часовой пояс GMT +3, время: 10:46. |