Почему не работает функция в атрибуте 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, время: 05:09. |