Почему не работает функция в атрибуте onclick?
Почему не работает функция в атрибуте onclick?
<p onclick='say()'>bla bla bla</p> function say(){ alert("ok"); } http://jsfiddle.net/8jkNJ/ |
Потому что то, что ты пишешь, оборачивается в функцию и вешается событием load. В левой панеле поменяй во втором селекте с "onLoad" на "No wrap".
|
Цитата:
Я вставляю элемент с атрибутом onclick на страницу с помощью innerHTML. Может в этом проблема? |
Всё работает:
<div id="test"></div> <script> test.innerHTML = "<p onclick='say()'>bla bla bla</p>"; function say(){ alert("ok"); } </script>Хз, что у вас за проблема. |
Цитата:
Соответственно обрабочики надо добавлять вручную: elem.onclick=say; //или elem.addEventListener('click',say,false)В geasemonkey есть ещё unsafeWindow и можно сделать так: unsafeWindow.say=function(){/*...*/}но это дырa в безопасности. |
Все так нормально работает с addEventListener() и не надо никаких онкликов.
|
Вообще-то и в обычном скрипте если тупо добавить текст, в innerHTML, то не факт что онклик будет работать. Надо делать элемент, вешать на него объект - функцию, и аттачить в дом как таковой.
Для внедренных скриптов аналогично, но там принцип другой. Если это ваш элемент - то программируете его addEventListener;ом, а если чужой и надо по нему клацнуть, то тупо elem,click() или типа того. |
Понял. Всем спасибо за помощь.
|
Часовой пояс GMT +3, время: 21:00. |