Как установить атрибут OnClick со значением, содержащим функцию в ie8?
Моя цель - изменить атрибут "onclick" ссылки. Я могу сделать это успешно, но результирующая ссылка не работает в ie8. Он работает в ff3.
Например, это работает в firefox3, но не ie8. Почему???
<p><a id="bar" href="#" onclick="temp()">click me</a></p>
<script>
doit = function(){
alert('hello world!');
}
foo = document.getElementById("bar");
foo.setAttribute("onclick","javascript:doit();");
</script>
Ответы
Ответ 1
Вам не нужно использовать setAttribute для этого - этот код работает (IE8 также)
<div id="something" >Hello</div>
<script type="text/javascript" >
(function() {
document.getElementById("something").onclick = function() {
alert('hello');
};
})();
</script>
Ответ 2
лучше всего использовать фреймворк javascript, например jquery или прототип, но, в противном случае, вы должны использовать:
if (foo.addEventListener)
foo.addEventListener('click',doit,false); //everything else
else if (foo.attachEvent)
foo.attachEvent('onclick',doit); //IE only
изменить:
также, ваша функция немного выключена. это должно быть
var doit = function(){
alert('hello world!');
}
Ответ 3
Вы также можете установить onclick для вызова вашей функции следующим образом:
foo.onclick = function() { callYourJSFunction(arg1, arg2); };
Таким образом, вы также можете передавать аргументы.
.....
Ответ 4
Вы также можете использовать:
element.addEventListener("click", function(){
// call execute function here...
}, false);